Class: Publication::CoverGenerator
- Inherits:
-
BaseService
- Object
- BaseService
- Publication::CoverGenerator
- Defined in:
- app/services/publication/cover_generator.rb
Overview
Service object: cover generator.
Instance Attribute Summary
Attributes inherited from BaseService
Instance Method Summary collapse
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
#cleanup_failed_uploads ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'app/services/publication/cover_generator.rb', line 25 def cleanup_failed_uploads Item.publications.joins(:primary_image).includes(:primary_image).find_each do |pub| if pub.primary_image.is_remote_image_valid? logger.info "Primary image #{pub.primary_image_id} is valid" else logger.info "Deleting primary image #{pub.primary_image.id} as it is invalid" pub.primary_image.destroy end end end |
#process(clean_first: false) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/publication/cover_generator.rb', line 4 def process(clean_first: false) failures = [] successes = [] cleanup_failed_uploads if clean_first Item.publications.where(primary_image_id: nil).find_each do |pub| logger.info "Migrating #{pub.sku} and extracting cover" begin image = pub.create_primary_image_from_pdf if image successes << [pub.sku, image.id] else failures << [pub.sku, 'No image generated'] end rescue StandardError => e failures << [pub.sku, e.to_s] end end { successes: successes, failures: failures } end |