diff --git a/app/helpers/epp/contacts_helper.rb b/app/helpers/epp/contacts_helper.rb index f365516a3..b1121ff4c 100644 --- a/app/helpers/epp/contacts_helper.rb +++ b/app/helpers/epp/contacts_helper.rb @@ -12,6 +12,7 @@ module Epp::ContactsHelper def update_contact code = params_hash['epp']['command']['update']['update'][:id] @contact = Contact.where(code: code).first + stamp @contact if @contact.update_attributes(contact_and_address_attributes.delete_if { |k, v| v.nil? }) render 'epp/contacts/update' else @@ -22,17 +23,15 @@ module Epp::ContactsHelper def delete_contact ph = params_hash['epp']['command']['delete']['delete'] - begin - @contact = Contact.where(code: ph[:id]).first - @contact.destroy - render '/epp/contacts/delete' - rescue NoMethodError => e - epp_errors << { code: '2303', msg: t('errors.messages.epp_obj_does_not_exist') } - render '/epp/error' - rescue - epp_errors << {code: '2400', msg: t('errors.messages.epp_command_failed')} - render '/epp/error' - end + @contact = Contact.where(code: ph[:id]).first + @contact.destroy + render '/epp/contacts/delete' + rescue NoMethodError => e + epp_errors << { code: '2303', msg: t('errors.messages.epp_obj_does_not_exist') } + render '/epp/error' + rescue + epp_errors << {code: '2400', msg: t('errors.messages.epp_command_failed')} + render '/epp/error' end def check_contact diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 849fba03a..8eb8dd7d8 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -29,6 +29,16 @@ describe 'EPP Contact', epp: true do expect(Contact.count).to eq(1) end + it 'stamps updated_by succesfully' do + Fabricate(:contact, code: 'sh8013') + + expect(Contact.first.updated_by_id).to be nil + + response = epp_request('contacts/update.xml') + + expect(Contact.first.updated_by_id).to be 1 + end + #TODO tests for missing/invalid/etc ident it 'deletes contact' do