Class: Publication::Saver
- Inherits:
-
BaseService
- Object
- BaseService
- Publication::Saver
- Defined in:
- app/services/publication/saver.rb
Overview
Service object: saver.
Defined Under Namespace
Classes: Result
Instance Attribute Summary
Attributes inherited from BaseService
Instance Method Summary collapse
- #initialize_publication(publication_params) ⇒ Object
-
#process(id: nil, publication: nil, publication_params: {}, user: nil) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument.
Methods inherited from BaseService
#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #tagged_logger
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#initialize_publication(publication_params) ⇒ Object
29 30 31 32 33 |
# File 'app/services/publication/saver.rb', line 29 def initialize_publication(publication_params) defaults = { product_category_id: ProductCategory.publications_root_id, cycle_count_grouping: 'not_set' } defaults.merge!(publication_params) Item.new(defaults) end |
#process(id: nil, publication: nil, publication_params: {}, user: nil) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/publication/saver.rb', line 10 def process(id: nil, publication: nil, publication_params: {}, user: nil) # rubocop:disable Lint/UnusedMethodArgument publication = publication publication ||= Item.publications.find(id) if id publication ||= initialize_publication(publication_params) publication.assign_attributes(publication_params) if publication.save changed_literature = publication.has_literature_changed? if changed_literature || publication.primary_image.nil? # Generate a new cover image publication.create_primary_image_from_pdf end publication.set_search_text if changed_literature Result.new(publication: publication, saved: true) else Result.new(publication: publication, saved: false, errors: publication.errors.) end end |