From 431eaf54392dead044fe33c8a624818f43a7fcfc Mon Sep 17 00:00:00 2001 From: Stas Date: Thu, 17 Mar 2016 18:32:55 +0200 Subject: [PATCH] 1150040781-contact_delete_legal_doc --- app/controllers/epp/contacts_controller.rb | 2 +- app/models/contact.rb | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/epp/contacts_controller.rb b/app/controllers/epp/contacts_controller.rb index 5b0a39bbf..0a8c8f634 100644 --- a/app/controllers/epp/contacts_controller.rb +++ b/app/controllers/epp/contacts_controller.rb @@ -39,7 +39,7 @@ class Epp::ContactsController < EppController def delete authorize! :delete, @contact, @password - if @contact.destroy_and_clean + if @contact.destroy_and_clean(params[:parsed_frame]) render_epp_response '/epp/contacts/delete' else handle_errors(@contact) diff --git a/app/models/contact.rb b/app/models/contact.rb index 9b4902e0b..d01bac152 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -330,11 +330,15 @@ class Contact < ActiveRecord::Base # TODO: refactor, it should not allow to destroy with normal destroy, # no need separate method # should use only in transaction - def destroy_and_clean + def destroy_and_clean frame if domains_present? errors.add(:domains, :exist) return false end + if doc = Epp::Contact.attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) + frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? + self.legal_document_id = doc.id + end destroy end