demarches-normaliennes/app/helpers/gallery_helper.rb
2024-10-11 10:41:04 +02:00

38 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module GalleryHelper
def displayable_pdf?(blob)
blob.previewable? && blob.content_type.in?(AUTHORIZED_PDF_TYPES)
end
def displayable_image?(blob)
blob.variable? && blob.content_type.in?(AUTHORIZED_IMAGE_TYPES)
end
def representation_url_for(attachment)
return variant_url_for(attachment) if displayable_image?(attachment.blob)
preview_url_for(attachment) if displayable_pdf?(attachment.blob)
end
def preview_url_for(attachment)
preview = attachment.preview(resize_to_limit: [400, 400])
preview.image.attached? ? preview.processed.url : 'pdf-placeholder.png'
rescue StandardError
'pdf-placeholder.png'
end
def variant_url_for(attachment)
variant = attachment.variant(resize_to_limit: [400, 400])
variant.key.present? ? variant.processed.url : 'apercu-indisponible.png'
rescue StandardError
'apercu-indisponible.png'
end
def blob_url(attachment)
variant = attachment.variant(resize_to_limit: [2000, 2000])
attachment.blob.content_type.in?(RARE_IMAGE_TYPES) && variant.key.present? ? variant.processed.url : attachment.blob.url
rescue StandardError
attachment.blob.url
end
end