Get admin/registrant domains when company registry is down

This commit is contained in:
Karl Erik Õunapuu 2021-02-04 15:59:37 +02:00
parent 1bb975c0cc
commit 419396f5b4
No known key found for this signature in database
GPG key ID: C9DD647298A34764
3 changed files with 16 additions and 4 deletions

View file

@ -44,7 +44,7 @@ module Api
def current_user_domains def current_user_domains
current_registrant_user.domains(admin: params[:tech] != 'true') current_registrant_user.domains(admin: params[:tech] != 'true')
rescue CompanyRegister::NotAvailableError rescue CompanyRegister::NotAvailableError
current_registrant_user.direct_domains current_registrant_user.direct_domains(admin: params[:tech] != 'true')
end end
end end
end end

View file

@ -207,6 +207,14 @@ class Domain < ApplicationRecord
) )
end end
def registrant_user_direct_admin_registrant_domains(registrant_user)
from(
"(#{registrant_user_direct_domains_by_registrant(registrant_user).to_sql} UNION " \
"#{registrant_user_direct_domains_by_contact(registrant_user,
except_tech: true).to_sql}) AS domains"
)
end
def registrant_user_domains(registrant_user) def registrant_user_domains(registrant_user)
from( from(
"(#{registrant_user_domains_by_registrant(registrant_user).to_sql} UNION " \ "(#{registrant_user_domains_by_registrant(registrant_user).to_sql} UNION " \
@ -256,8 +264,10 @@ class Domain < ApplicationRecord
where(registrant: registrant_user.direct_contacts) where(registrant: registrant_user.direct_contacts)
end end
def registrant_user_direct_domains_by_contact(registrant_user) def registrant_user_direct_domains_by_contact(registrant_user, except_tech: false)
joins(:domain_contacts).where(domain_contacts: { contact_id: registrant_user.direct_contacts }) request = { contact_id: registrant_user.direct_contacts }
request[:type] = [AdminDomainContact.name] if except_tech
joins(:domain_contacts).where(domain_contacts: request)
end end
def registrant_user_company_registrant(companies) def registrant_user_company_registrant(companies)

View file

@ -36,7 +36,9 @@ class RegistrantUser < User
Domain.registrant_user_domains(self) Domain.registrant_user_domains(self)
end end
def direct_domains def direct_domains(admin: false)
return Domain.registrant_user_direct_admin_registrant_domains(self) if admin
Domain.registrant_user_direct_domains(self) Domain.registrant_user_direct_domains(self)
end end