mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 18:29:40 +02:00
Merge branch 'master' of github.com:internetee/registry
This commit is contained in:
commit
fe54f327d9
2 changed files with 19 additions and 35 deletions
|
@ -70,25 +70,16 @@ class Contact < ActiveRecord::Base
|
|||
Domain.find_by(owner_contact_id: id)
|
||||
end
|
||||
|
||||
#TODO Refactor the relation methods to something more sensible
|
||||
def get_relation( model = :domain_contacts )
|
||||
send(model)
|
||||
rescue NoMethodError => e
|
||||
nil
|
||||
end
|
||||
|
||||
def has_relation( model = :domain_contacts )
|
||||
relation = get_relation(model)
|
||||
return true unless relation.nil? || relation.blank?
|
||||
false
|
||||
def relations_with_domain?
|
||||
return true if domain_contacts.present? || domains_owned.present?
|
||||
return false
|
||||
end
|
||||
|
||||
#should use only in transaction
|
||||
def destroy_and_clean
|
||||
clean_up_address
|
||||
|
||||
if has_relation(:domain_contacts) || domains_owned.present?
|
||||
#errors.add(:contact, msg: I18n.t('errors.messages.epp_obj_association_error'), value: { obj: 'contact', val: code })
|
||||
if relations_with_domain?
|
||||
errors.add(:domains, :exist)
|
||||
return false
|
||||
end
|
||||
|
|
|
@ -39,30 +39,23 @@ describe Contact do
|
|||
end
|
||||
end
|
||||
|
||||
describe Contact, '#get_relation' do
|
||||
before(:each) { Fabricate(:contact) }
|
||||
it 'should return nil if no method' do
|
||||
expect(Contact.first.get_relation(:chewbacca)).to eq nil
|
||||
describe Contact, '#relations_with_domain?' do
|
||||
context 'with no relation' do
|
||||
before(:each) { Fabricate(:contact) }
|
||||
it 'should return false' do
|
||||
expect(Contact.first.relations_with_domain?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
it 'should return domain_contacts by default' do
|
||||
expect(Contact.first.get_relation).to eq []
|
||||
end
|
||||
end
|
||||
|
||||
describe Contact, '#has_relation' do
|
||||
before(:each) do
|
||||
Fabricate(:domain_validation_setting_group)
|
||||
Fabricate(:domain)
|
||||
end
|
||||
|
||||
it 'should return false if no relation' do
|
||||
expect(Contact.last.has_relation(:chewbacca)).to eq false
|
||||
end
|
||||
|
||||
it 'should return true if relation' do
|
||||
expect(Contact.last.has_relation).to eq true
|
||||
expect(Contact.last.has_relation(:address)).to eq true
|
||||
context 'with relation' do
|
||||
before(:each) do
|
||||
Fabricate(:domain_validation_setting_group)
|
||||
Fabricate(:domain)
|
||||
end
|
||||
|
||||
it 'should return true' do
|
||||
expect(Contact.first.relations_with_domain?).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue