Fix CC issues

This commit is contained in:
Alex Sherman 2021-02-01 17:21:29 +05:00
parent da032dad79
commit f6a2d91d61
5 changed files with 41 additions and 46 deletions

View file

@ -1,21 +1,9 @@
module Repp module Repp
module V1 module V1
module Domains module Domains
class AdminContactsController < BaseController class AdminContactsController < BaseContactsController
before_action :set_current_contact, only: [:update]
before_action :set_new_contact, only: [:update]
def set_current_contact
@current_contact = current_user.registrar.contacts.find_by!(code: contact_params[:current_contact_id])
end
def set_new_contact
@new_contact = current_user.registrar.contacts.find_by!(code: params[:new_contact_id])
end
def update def update
@epp_errors ||= [] super
@epp_errors << { code: 2304, msg: 'New contact must be valid' } if @new_contact.invalid?
unless @new_contact.identical_to?(@current_contact) unless @new_contact.identical_to?(@current_contact)
@epp_errors << { code: 2304, msg: 'Admin contacts must be identical' } @epp_errors << { code: 2304, msg: 'Admin contacts must be identical' }
@ -27,13 +15,6 @@ module Repp
@response = { affected_domains: affected, skipped_domains: skipped } @response = { affected_domains: affected, skipped_domains: skipped }
render_success(data: @response) render_success(data: @response)
end end
private
def contact_params
params.require(%i[current_contact_id new_contact_id])
params.permit(:current_contact_id, :new_contact_id)
end
end end
end end
end end

View file

@ -0,0 +1,31 @@
module Repp
module V1
module Domains
class BaseContactsController < BaseController
before_action :set_current_contact, only: [:update]
before_action :set_new_contact, only: [:update]
def set_current_contact
@current_contact = current_user.registrar.contacts
.find_by!(code: contact_params[:current_contact_id])
end
def set_new_contact
@new_contact = current_user.registrar.contacts.find_by!(code: params[:new_contact_id])
end
def update
@epp_errors ||= []
@epp_errors << { code: 2304, msg: 'New contact must be valid' } if @new_contact.invalid?
end
private
def contact_params
params.require(%i[current_contact_id new_contact_id])
params.permit(:current_contact_id, :new_contact_id)
end
end
end
end
end

View file

@ -1,23 +1,9 @@
module Repp module Repp
module V1 module V1
module Domains module Domains
class ContactsController < BaseController class ContactsController < BaseContactsController
before_action :set_current_contact, only: [:update]
before_action :set_new_contact, only: [:update]
def set_current_contact
@current_contact = current_user.registrar.contacts.find_by!(
code: contact_params[:current_contact_id]
)
end
def set_new_contact
@new_contact = current_user.registrar.contacts.find_by!(code: params[:new_contact_id])
end
def update def update
@epp_errors ||= [] super
@epp_errors << { code: 2304, msg: 'New contact must be valid' } if @new_contact.invalid?
if @new_contact == @current_contact if @new_contact == @current_contact
@epp_errors << { code: 2304, msg: 'New contact must be different from current' } @epp_errors << { code: 2304, msg: 'New contact must be different from current' }
@ -29,13 +15,6 @@ module Repp
@response = { affected_domains: affected, skipped_domains: skipped } @response = { affected_domains: affected, skipped_domains: skipped }
render_success(data: @response) render_success(data: @response)
end end
private
def contact_params
params.require(%i[current_contact_id new_contact_id])
params.permit(:current_contact_id, :new_contact_id)
end
end end
end end
end end

View file

@ -1,4 +1,6 @@
class AdminDomainContact < DomainContact class AdminDomainContact < DomainContact
# rubocop:disable Metrics/AbcSize
# rubocop:disable Metrics/MethodLength
def self.replace(current_contact, new_contact) def self.replace(current_contact, new_contact)
affected_domains = [] affected_domains = []
skipped_domains = [] skipped_domains = []
@ -19,4 +21,6 @@ class AdminDomainContact < DomainContact
end end
[affected_domains.sort, skipped_domains.sort] [affected_domains.sort, skipped_domains.sort]
end end
# rubocop:enable Metrics/AbcSize
# rubocop:enable Metrics/MethodLength
end end

View file

@ -16,7 +16,7 @@ module Concerns::Contact::Identical
ident ident
ident_type ident_type
ident_country_code ident_country_code
] ].freeze
private_constant :IDENTIFIABLE_ATTRIBUTES private_constant :IDENTIFIABLE_ATTRIBUTES
@ -29,7 +29,7 @@ module Concerns::Contact::Identical
def identical_to?(contact) def identical_to?(contact)
IDENTICAL_ATTRIBUTES.all? do |attribute| IDENTICAL_ATTRIBUTES.all? do |attribute|
self.attributes[attribute] == contact.attributes[attribute] attributes[attribute] == contact.attributes[attribute]
end end
end end