Files
old-holivud2/app/models/headshot_collection.rb
2020-06-03 07:24:01 +02:00

45 lines
1.0 KiB
Ruby

# Represents a collection of releases with photos
class HeadshotCollection
attr_reader :collection_uid, :releasables
def self.for_project(project)
appearance_releases_with_photo = project.appearance_releases.with_person_photo
new(project.id, appearance_releases_with_photo + project.talent_releases)
end
def initialize(collection_uid, releasables)
@collection_uid = collection_uid
@releasables = releasables
end
# Use the custom hash to generate JSON format
def as_json(*)
to_hash
end
def to_hash
{
collection_uid: collection_uid.to_s,
bucket_name: aws_bucket_name,
ids_to_images: map_ids_to_images,
}
end
private
def aws_bucket_name
ENV["AWS_BUCKET"]
end
def map_ids_to_images
releasables.each_with_object({}) do |release, hash|
hash[release_id(release)] = [release.photo.key] # An array of images is expected, even if there's only one image
end
end
def release_id(release)
[release.model_name.param_key, release.id].join("_")
end
end