mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-11 18:26:50 +00:00
39 lines
1.0 KiB
Ruby
39 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class ApplicationRecord < ActiveRecord::Base
|
|
include Spree::Core::Permalinks
|
|
include Spree::Preferences::Preferable
|
|
include Searchable
|
|
include ArelHelpers::ArelTable
|
|
include ArelHelpers::Aliases
|
|
include ArelHelpers::JoinAssociation
|
|
|
|
self.abstract_class = true
|
|
self.include_root_in_json = true
|
|
|
|
def self.image_service
|
|
return :local if ENV["S3_BUCKET"].blank?
|
|
return :amazon_public if ENV["S3_ENDPOINT"].blank?
|
|
|
|
:s3_compatible_storage_public
|
|
end
|
|
|
|
# We might have a development environment without S3 but with a database
|
|
# dump pointing to S3 images. Accessing the service fails then.
|
|
def image_variant_url_for(variant)
|
|
if ENV["S3_BUCKET"].present? && variant.service.public?
|
|
variant.processed.url
|
|
else
|
|
unless variant.blob.persisted?
|
|
raise "ActiveStorage blob for variant is not persisted. Cannot generate URL."
|
|
end
|
|
|
|
url_for(variant)
|
|
end
|
|
end
|
|
|
|
def url_for(*)
|
|
Rails.application.routes.url_helpers.url_for(*)
|
|
end
|
|
end
|