diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index c4fb51a66..87042a3f6 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -228,14 +228,22 @@ class Epp::Contact < Contact end def add_legal_file_to_new frame - if doc = attach_legal_document(parse_legal_document_from_frame(frame)) - raise ActiveRecord::Rollback if doc && doc.id.nil? + legal_document_data = Epp::Contact.parse_legal_document_from_frame(frame) + return unless legal_document_data - frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? - self.legal_document_id = doc.id - end + doc = LegalDocument.create( + documentable_type: Contact, + document_type: legal_document_data[:type], + body: legal_document_data[:body] + ) + raise ActiveRecord::Rollback if doc && doc.id.nil? + self.legal_documents = [doc] + + frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? + self.legal_document_id = doc.id end + def parse_legal_document_from_frame frame ld = frame.css('legalDocument').first return nil unless ld diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 00cbf3a09..6af07b909 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -202,12 +202,19 @@ class Epp::Domain < Domain # Adding legal doc to domain and # if something goes wrong - raise Rollback error def add_legal_file_to_new frame - if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) - raise ActiveRecord::Rollback if doc && doc.id.nil? + legal_document_data = Epp::Domain.parse_legal_document_from_frame(frame) + return unless legal_document_data - frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? - self.legal_document_id = doc.id - end + doc = LegalDocument.create( + documentable_type: Domain, + document_type: legal_document_data[:type], + body: legal_document_data[:body] + ) + raise ActiveRecord::Rollback if doc && doc.id.nil? + self.legal_documents = [doc] + + frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? + self.legal_document_id = doc.id end # rubocop: enable Metrics/PerceivedComplexity # rubocop: enable Metrics/CyclomaticComplexity