Merge pull request #144 from internetee/111601356-ident_type_validation

111601356 ident type validation
This commit is contained in:
Timo Võhmar 2016-06-07 15:11:44 +03:00
commit b161cfd40c
3 changed files with 12 additions and 0 deletions

View file

@ -33,6 +33,8 @@ class Contact < ActiveRecord::Base
uniqueness: { message: :epp_id_taken }, uniqueness: { message: :epp_id_taken },
format: { with: /\A[\w\-\:\.\_]*\z/i, message: :invalid }, format: { with: /\A[\w\-\:\.\_]*\z/i, message: :invalid },
length: { maximum: 100, message: :too_long_contact_code } length: { maximum: 100, message: :too_long_contact_code }
validate :val_ident_type
validate :val_ident_valid_format? validate :val_ident_valid_format?
validate :uniq_statuses? validate :uniq_statuses?
validate :validate_html validate :validate_html
@ -241,6 +243,10 @@ class Contact < ActiveRecord::Base
name || '[no name]' name || '[no name]'
end end
def val_ident_type
errors.add(:ident_type, :epp_ident_type_invalid, code: code) if !%w(org priv birthday).include?(ident_type)
end
def val_ident_valid_format? def val_ident_valid_format?
case ident_country_code case ident_country_code
when 'EE'.freeze when 'EE'.freeze

View file

@ -132,6 +132,9 @@ class Epp::Contact < Contact
'2302' => [ # Object exists '2302' => [ # Object exists
[:code, :epp_id_taken] [:code, :epp_id_taken]
], ],
'2304' => [ # Object status prohibits operation
[:ident_type, :epp_ident_type_invalid, { value: { obj: 'code', val: code}, interpolation: {code: code}}]
],
'2305' => [ # Association exists '2305' => [ # Association exists
[:domains, :exist] [:domains, :exist]
], ],

View file

@ -52,6 +52,9 @@ en:
invalid_EE_identity_format_update: "Ident not in valid Estonian identity format. Please create new contact" invalid_EE_identity_format_update: "Ident not in valid Estonian identity format. Please create new contact"
invalid_birthday_format: "Ident not in valid birthady format, should be YYYY-MM-DD" invalid_birthday_format: "Ident not in valid birthady format, should be YYYY-MM-DD"
invalid_country_code: "Ident country code is not valid, should be in ISO_3166-1 alpha 2 format" invalid_country_code: "Ident country code is not valid, should be in ISO_3166-1 alpha 2 format"
ident_type:
ident_type_invalid: 'Ident type is invalid'
epp_ident_type_invalid: 'Object status prohibits operation: ident_type of contact %{code} is invalid'
domains: domains:
exist: 'Object association prohibits operation' exist: 'Object association prohibits operation'
statuses: statuses: