Class: Publication::Saver
- Inherits:
-
BaseService
- Object
- BaseService
- Publication::Saver
- Defined in:
- app/services/publication/saver.rb
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
- #initialize_publication(publication_params) ⇒ Object
- #process(id: nil, publication: nil, publication_params: {}, user: nil) ⇒ Object
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
8 9 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 8 def process(id: nil, publication: nil, publication_params: {}, user: nil) 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 if changed_literature publication.set_search_text end Result.new(publication: publication, saved: true) else Result.new(publication: publication, saved: false, errors: publication.errors.) end end |