Commit 6cf1b79c
Changed files (3)
app
models
app/jobs/re_process_photo_job.rb
@@ -2,10 +2,8 @@ class ReProcessPhotoJob < ActiveJob::Base
queue_as :default
def perform(photo)
- key = OriginalVersion.new(photo).create_key
- blob_storage.download(key) do |file|
- temp_file = file_storage.store(file)
- ProcessPhotoJob.perform_later(photo, temp_file)
+ photo.version(:original).download(blob_storage) do |file|
+ ProcessPhotoJob.perform_later(photo, file_storage.store(file))
end
end
app/models/photo.rb
@@ -3,7 +3,7 @@ class Photo < ActiveRecord::Base
scope :processed, ->{ where(image_processing: nil) }
def url_for(version_key, asset_host = ENV['ASSET_HOST'])
- versions.find { |version| version.for?(version_key) }.url_for(asset_host)
+ version(version_key).url_for(asset_host)
end
def is_processed?
@@ -24,6 +24,10 @@ class Photo < ActiveRecord::Base
end
end
+ def version(key)
+ versions.find { |version| version.for?(key) }
+ end
+
private
def versions
app/models/version.rb
@@ -1,29 +1,35 @@
- class Version
- attr_reader :key, :prefix, :photo
+class Version
+ attr_reader :key, :prefix, :photo
- def initialize(photo, key, prefix)
- @key = key
- @prefix = prefix
- @photo = photo
- end
+ def initialize(photo, key, prefix)
+ @key = key
+ @prefix = prefix
+ @photo = photo
+ end
- def adjust(image)
- fail "Please override with version specific behaviours"
- end
+ def adjust(image)
+ fail "Please override with version specific behaviours"
+ end
- def for?(other_key)
- key == other_key
- end
+ def for?(other_key)
+ key == other_key
+ end
- def url_for(asset_host)
- if photo.is_processed?
- "#{asset_host}/#{create_key}"
- else
- ActionController::Base.helpers.asset_path("#{key}_default.png")
- end
+ def url_for(asset_host)
+ if photo.is_processed?
+ "#{asset_host}/#{blob_key}"
+ else
+ ActionController::Base.helpers.asset_path("#{key}_default.png")
end
+ end
+
+ def blob_key
+ "uploads/photo/image/#{photo.id}/#{prefix}#{photo.image}"
+ end
- def create_key
- "uploads/photo/image/#{photo.id}/#{prefix}#{photo.image}"
+ def download(blob_storage)
+ blob_storage.download(blob_key) do |file|
+ yield file
end
end
+end