diff --git a/app/models/media_asset.rb b/app/models/media_asset.rb index 0ce712053..fb093632a 100644 --- a/app/models/media_asset.rb +++ b/app/models/media_asset.rb @@ -51,6 +51,8 @@ class MediaAsset < ApplicationRecord class Variant extend Memoist + include ActiveModel::Serializers::JSON + include ActiveModel::Serializers::Xml attr_reader :media_asset, :variant delegate :md5, :storage_service, :backup_storage_service, to: :media_asset @@ -164,6 +166,10 @@ class MediaAsset < ApplicationRecord dimensions[1] end + def serializable_hash(*options) + { variant: variant, url: file_url, width: width, height: height, file_ext: file_ext } + end + memoize :file_name, :file_ext, :max_dimensions, :dimensions end diff --git a/app/policies/media_asset_policy.rb b/app/policies/media_asset_policy.rb index 9d6f45887..05e57eefd 100644 --- a/app/policies/media_asset_policy.rb +++ b/app/policies/media_asset_policy.rb @@ -10,10 +10,8 @@ class MediaAssetPolicy < ApplicationPolicy end def api_attributes - if can_see_image? - super - else - super.excluding(:md5, :file_key) - end + attributes = super + [:variants] + attributes -= [:md5, :file_key, :variants] if !can_see_image? + attributes end end