Merge branch 'contact_ident'

Conflicts:
	db/schema.rb
This commit is contained in:
Andres Keskküla 2014-07-30 12:23:21 +03:00
commit 8a4b91c3b7
8 changed files with 45 additions and 6 deletions

View file

@ -12,6 +12,7 @@ module Epp::ContactsHelper
)
end
@contact.name = ph[:postalInfo][:name]
@contact.ident_type = ident_type
@contact.addresses << Address.new(
country_id: Country.find_by(iso: ph[:postalInfo][:cc]),
@ -53,4 +54,16 @@ module Epp::ContactsHelper
render 'epp/error'
end
end
private
def ident_type
result = params[:frame].slice(/(?<=\<ns2:ident type=)(.*)(?=<)/)
return nil unless result
Contact::IDENT_TYPES.any? { |type| return type if result.include?(type) }
return nil
end
end

View file

@ -7,10 +7,17 @@ class Contact < ActiveRecord::Base
validate :ident_must_be_valid
validates :phone, format: { with: /\+\d{3}\.\d+/, message: "bad format" }
IDENT_TYPES = [
"ico", #Company registry code (or similar)
"op", #Estonian ID
"passport", #Passport number
"birthday" #Birthday date
]
def ident_must_be_valid
#TODO Ident can also be passport number or company registry code.
#so have to make changes to validations (and doc/schema) accordingly
return true unless ident.present?
return true unless ident.present? && ident_type.present? && ident_type == "op"
code = Isikukood.new(ident)
errors.add(:ident, 'bad format') unless code.valid?
end