Class: Publication::CoverGenerator

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/publication/cover_generator.rb

Instance Method Summary collapse

Instance Method Details

#cleanup_failed_uploadsObject



23
24
25
26
27
28
29
30
31
32
# File 'app/services/publication/cover_generator.rb', line 23

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



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/services/publication/cover_generator.rb', line 2

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 => exc
      failures << [pub.sku, exc.to_s]
    end
  end
  { successes: successes, failures: failures }
end