Change error handling to more humane

This commit is contained in:
Alex Sherman 2020-10-15 16:01:01 +05:00
parent ce93425ad8
commit c09e08c61e
2 changed files with 26 additions and 4 deletions

View file

@ -16,9 +16,9 @@ module Api
end
def current_user_companies
current_registrant_user.companies
[:ok, current_registrant_user.companies]
rescue CompanyRegister::NotAvailableError
[]
[:service_unavailable, []]
end
def limit
@ -35,8 +35,8 @@ module Api
end
def companies_result(limit, offset)
@companies = current_user_companies.drop(offset).first(limit)
status = @companies.present? ? :ok : :not_found
status, all_companies = current_user_companies
@companies = all_companies.drop(offset).first(limit)
serialized_companies = @companies.map do |item|
country_code = current_registrant_user.country.alpha3

View file

@ -1,3 +1,4 @@
$VERBOSE=nil
require 'test_helper'
require 'auth_token/auth_token_creator'
@ -33,6 +34,18 @@ class RegistrantApiCompaniesTest < ApplicationIntegrationTest
assert_equal(:companies, response_json.keys.first)
end
def test_status_if_nil_result
contacts(:john).update!(ident: '12344321', ident_type: 'priv', ident_country_code: 'US')
CompanyRegister.const_set(:Client, CompanyRegisterClientZeroStub)
get '/api/v1/registrant/companies', headers: @auth_headers
response_json = JSON.parse(response.body, symbolize_names: true)
assert_equal(1, response_json.count)
assert_equal(200, response.status)
assert_equal(:companies, response_json.keys.first)
end
private
def auth_token
@ -41,3 +54,12 @@ class RegistrantApiCompaniesTest < ApplicationIntegrationTest
"Bearer #{hash[:access_token]}"
end
end
class CompanyRegisterClientZeroStub
Company = Struct.new(:registration_number, :company_name)
def representation_rights(citizen_personal_code:, citizen_country_code:)
[]
end
end