From 3a99531309aaca21e370c52cb837a342ec0a1307 Mon Sep 17 00:00:00 2001 From: Peter Halloran Date: Fri, 3 Mar 2017 15:52:31 -0600 Subject: [PATCH] feat: add sameness validation for extention on update --- app/models/asset_field_type.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/models/asset_field_type.rb b/app/models/asset_field_type.rb index c363d6b..927e198 100644 --- a/app/models/asset_field_type.rb +++ b/app/models/asset_field_type.rb @@ -14,6 +14,7 @@ class AssetFieldType < FieldType validates :asset, attachment_presence: true, if: :validate_presence? validate :validate_asset_size, if: :validate_size? validate :validate_asset_content_type, if: :validate_content_type? + validate :asset_extension, if: :existing_data? def metadata=(metadata_hash) @metadata = metadata_hash.deep_symbolize_keys @@ -79,6 +80,12 @@ def media_title existing_data['media_title'] || ContentItemService.form_fields[@metadata[:naming_data][:title]][:text].parameterize.underscore end + def asset_extension + unless existing_data['asset']['content_type'] == asset_content_type + errors.add(:asset, "Asset must be the same type of: #{existing_data['asset']['content_type']}") + end + end + def mapping_field_name "#{field_name.parameterize('_')}_asset_file_name" end @@ -97,6 +104,10 @@ def attachment_content_type_validator alias_method :valid_presence_validation?, :validate_presence? + def existing_data? + existing_data.any? + end + def validate_size? begin attachment_size_validator