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
current_registrant_user.domains(admin: params[:tech] != 'true')
rescue CompanyRegister::NotAvailableError
current_registrant_user.direct_domains
current_registrant_user.direct_domains(admin: params[:tech] != 'true')
end
end
end

View file

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

View file

@ -36,7 +36,9 @@ class RegistrantUser < User
Domain.registrant_user_domains(self)
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)
end