feat: restore company validation for Estonian organizations

- Re-enable company validation logic for Estonian organization contacts
- Update company_register gem to use master branch
- Restore and update company validation tests
- Add additional check for Estonian country code in validation

This change ensures that only registered or liquidated Estonian companies
can be used when creating organizational contacts.
This commit is contained in:
oleghasjanov 2025-01-03 11:59:10 +02:00
parent 45703d4b86
commit 89097bfabe
4 changed files with 42 additions and 42 deletions

View file

@ -68,8 +68,8 @@ gem 'pdfkit'
gem 'redis'
gem 'sidekiq', '~> 7.0'
gem 'company_register', github: 'internetee/company_register',
branch: 'issues-with-upcoming-data'
gem 'company_register', github: 'internetee/company_register', branch: :master
gem 'domain_name'
gem 'e_invoice', github: 'internetee/e_invoice', branch: :master
gem 'haml', '~> 6.0'

View file

@ -1,7 +1,7 @@
GIT
remote: https://github.com/internetee/company_register.git
revision: 1e91fec78212d7e549a1c2362c011761a447bbcd
branch: issues-with-upcoming-data
revision: 30b2c4d2f0bb882370e174fc965cd9fd02b42951
branch: master
specs:
company_register (0.1.0)
activesupport
@ -304,7 +304,7 @@ GEM
kaminari-core (= 1.2.1)
kaminari-core (1.2.1)
libxml-ruby (3.2.1)
logger (1.6.5)
logger (1.6.4)
loofah (2.24.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)

View file

@ -14,7 +14,7 @@ module Actions
maybe_attach_legal_doc
maybe_validate_ident
maybe_change_email
# maybe_company_is_relevant
maybe_company_is_relevant
commit
maybe_validate_phone_number
maybe_validate_contact
@ -79,16 +79,17 @@ module Actions
@error = true
end
# def maybe_company_is_relevant
# return true unless contact.org?
def maybe_company_is_relevant
return true unless contact.org?
return true unless contact.ident_country_code == 'EE'
# company_status = contact.return_company_status
company_status = contact.return_company_status
# return if [Contact::REGISTERED, Contact::LIQUIDATED].include? company_status
# contact.add_epp_error('2003', nil, 'ident', I18n.t('errors.messages.company_not_registered'))
return true if [Contact::REGISTERED, Contact::LIQUIDATED].include? company_status
contact.add_epp_error('2003', nil, 'ident', I18n.t('errors.messages.company_not_registered'))
# @error = true
# end
@error = true
end
def maybe_attach_legal_doc
::Actions::BaseAction.attach_legal_doc_to_new(contact, legal_document, domain: false)

View file

@ -188,39 +188,38 @@ class ReppV1ContactsCreateTest < ActionDispatch::IntegrationTest
ENV['shunter_enabled'] = 'false'
end
# def test_returns_error_response_if_company_not_existed
# original_new_method = CompanyRegister::Client.method(:new)
# CompanyRegister::Client.define_singleton_method(:new) do
# object = original_new_method.call
# def object.simple_data(registration_number:)
# [Company.new('1234567', 'ACME Ltd', 'K')]
# end
# object
# end
def test_returns_error_response_if_company_not_existed
original_new_method = CompanyRegister::Client.method(:new)
CompanyRegister::Client.define_singleton_method(:new) do
object = original_new_method.call
def object.simple_data(registration_number:)
[Company.new('1234567', 'ACME Ltd', 'K')]
end
object
end
# request_body = {
# "contact": {
# "name": 'Donald Trump',
# "phone": '+372.51111112',
# "email": 'donald@trumptower.com',
# "ident": {
# "ident_type": 'org',
# "ident_country_code": 'EE',
# "ident": '70000313',
# },
# },
# }
request_body = {
"contact": {
"name": 'Donald Trump',
"phone": '+372.51111112',
"email": 'donald@trumptower.com',
"ident": {
"ident_type": 'org',
"ident_country_code": 'EE',
"ident": '70000313',
},
},
}
# post '/repp/v1/contacts', headers: @auth_headers, params: request_body
# json = JSON.parse(response.body, symbolize_names: true)
post '/repp/v1/contacts', headers: @auth_headers, params: request_body
json = JSON.parse(response.body, symbolize_names: true)
# assert_response :bad_request
# assert_equal 2003, json[:code]
# puts json[:message]
# assert json[:message].include? 'Company is not registered'
assert_response :bad_request
assert_equal 2003, json[:code]
assert json[:message].include? 'Company is not registered'
# CompanyRegister::Client.define_singleton_method(:new, original_new_method)
# end
CompanyRegister::Client.define_singleton_method(:new, original_new_method)
end
def test_contact_created_with_existed_company
original_new_method = CompanyRegister::Client.method(:new)