Class: RecordLoader::SubmissionTemplateLoader
- Inherits:
-
ApplicationRecordLoader
- Object
- Base
- ApplicationRecordLoader
- RecordLoader::SubmissionTemplateLoader
- Defined in:
- lib/record_loader/submission_template_loader.rb
Overview
Creates the specified submission templates if they are not present
Instance Method Summary collapse
- #create_or_update!(name, options) ⇒ Object
- #find_order_role(role) ⇒ Object
- #find_project(name) ⇒ Object
- #find_study(name) ⇒ Object
- #generate_derived_options(related_records) ⇒ Object
-
#sort_request_type_ids(request_type_keys) ⇒ Object
rubocop:enable Metrics/AbcSize.
-
#submission_parameters(related_records) ⇒ Object
rubocop:disable Metrics/AbcSize.
Methods inherited from ApplicationRecordLoader
Instance Method Details
#create_or_update!(name, options) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/record_loader/submission_template_loader.rb', line 12 def create_or_update!(name, ) = (['related_records']) = .except('related_records').merge() SubmissionTemplate.create_with().find_or_create_by!(name:) end |
#find_order_role(role) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/record_loader/submission_template_loader.rb', line 47 def find_order_role(role) if Rails.env.production? OrderRole.find_or_create_by!(role:) else # In development mode or UAT we use a static record as backup OrderRole.find_or_create_by(role:) || UatActions::StaticRecords.order_role end end |
#find_project(name) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/record_loader/submission_template_loader.rb', line 56 def find_project(name) if Rails.env.production? Project.find_by!(name:) else # In development mode or UAT we use a static record as backup Project.find_by(name:) || UatActions::StaticRecords.project end end |
#find_study(name) ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/record_loader/submission_template_loader.rb', line 65 def find_study(name) if Rails.env.production? Study.find_by!(name:) else # In development mode or UAT we use a static record as backup Study.find_by(name:) || UatActions::StaticRecords.study end end |
#generate_derived_options(related_records) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/record_loader/submission_template_loader.rb', line 19 def () { product_line: ProductLine.find_or_create_by!(name: ['product_line_name']), product_catalogue: ProductCatalogue.find_by!(name: ['product_catalogue_name']), submission_parameters: submission_parameters() } end |
#sort_request_type_ids(request_type_keys) ⇒ Object
rubocop:enable Metrics/AbcSize
41 42 43 44 45 |
# File 'lib/record_loader/submission_template_loader.rb', line 41 def sort_request_type_ids(request_type_keys) request_types = RequestType.where(key: request_type_keys).sort_by { |record| request_type_keys.index(record.key) } request_types.map(&:id) end |
#submission_parameters(related_records) ⇒ Object
rubocop:disable Metrics/AbcSize
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/record_loader/submission_template_loader.rb', line 28 def submission_parameters() params = {} params[:request_type_ids_list] = sort_request_type_ids(['request_type_keys']) if [ 'request_type_keys' ] params[:order_role_id] = find_order_role(['order_role']).id if ['order_role'] params[:project_id] = find_project(['project_name']).id if ['project_name'] params[:study_id] = find_study(['study_name']).id if ['study_name'] params end |