diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 7b0f8230a..2c99ce1a5 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,4 +1,7 @@ class LegalDocument < ActiveRecord::Base + include EppErrors + MIN_BODY_SIZE = (1.37 * 8.kilobytes).ceil + if ENV['legal_document_types'].present? TYPES = ENV['legal_document_types'].split(',').map(&:strip) else @@ -10,11 +13,23 @@ class LegalDocument < ActiveRecord::Base belongs_to :documentable, polymorphic: true - validates :body, length: { minimum: (1.37 * 8.kilobytes).ceil }, if: ->(file){ file.path.blank? && !Rails.env.staging?} + validate :val_body_length, if: ->(file){ file.path.blank? && !Rails.env.staging?} before_create :add_creator before_save :save_to_filesystem, if: :body + def epp_code_map + { + '2306' => [ + [:body, :length] + ] + } + end + + def val_body_length + errors.add(:body, :length) if body.nil? || body.size < MIN_BODY_SIZE + end + def save_to_filesystem diff --git a/config/locales/en.yml b/config/locales/en.yml index 88241ab15..991ba2516 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -206,6 +206,10 @@ en: blank: 'Algorithm is missing' auth_info_pw: blank: 'Password is missing' + legal_document: + attributes: + body: + length: 'Parameter value policy error: legalDocument size should be more than 8kB' attributes: