Class: Bulkrax::CsvTemplate::FilePathGenerator
- Inherits:
-
Object
- Object
- Bulkrax::CsvTemplate::FilePathGenerator
- Defined in:
- app/services/bulkrax/csv_template/file_path_generator.rb
Overview
Utility class for generating template file paths
Constant Summary collapse
- TEMPLATE_PREFIX =
'import_template'
Class Method Summary collapse
- .build_filename(context, tenant) ⇒ Object
- .default_path(admin_set_id) ⇒ Object
- .load_context(admin_set_id) ⇒ Object
- .load_tenant ⇒ Object
- .timestamp ⇒ Object
Class Method Details
.build_filename(context, tenant) ⇒ Object
34 35 36 37 38 39 40 |
# File 'app/services/bulkrax/csv_template/file_path_generator.rb', line 34 def self.build_filename(context, tenant) parts = [TEMPLATE_PREFIX] parts << "context-#{context}" if context.present? parts << "tenant-#{tenant}" if tenant.present? parts << "#{parts.join('_')}.csv" end |
.default_path(admin_set_id) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'app/services/bulkrax/csv_template/file_path_generator.rb', line 9 def self.default_path(admin_set_id) context = load_context(admin_set_id) tenant = load_tenant filename = build_filename(context, tenant) path = Rails.root.join('tmp', 'imports', filename) FileUtils.mkdir_p(path.dirname.to_s) path end |
.load_context(admin_set_id) ⇒ Object
18 19 20 21 22 23 |
# File 'app/services/bulkrax/csv_template/file_path_generator.rb', line 18 def self.load_context(admin_set_id) return nil if admin_set_id.blank? admin_set = Bulkrax.object_factory.find(admin_set_id) admin_set.respond_to?(:contexts) ? admin_set.contexts.first : nil end |
.load_tenant ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'app/services/bulkrax/csv_template/file_path_generator.rb', line 25 def self.load_tenant return nil unless defined?(Apartment::Tenant) && defined?(Account) tenant_id = Apartment::Tenant.current return nil if tenant_id.blank? Account.find_by(tenant: tenant_id)&.name end |
.timestamp ⇒ Object
42 43 44 |
# File 'app/services/bulkrax/csv_template/file_path_generator.rb', line 42 def self. Time.current.utc.strftime('%Y%m%d_%H%M%S') end |