mirror of
https://github.com/internetee/registry.git
synced 2025-07-21 18:26:06 +02:00
Save legal document with keyrelay
This commit is contained in:
parent
c91c9c8ebf
commit
efad36929e
4 changed files with 48 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
class Epp::KeyrelaysController < EppController
|
||||
class Epp::KeyrelaysController < EppController
|
||||
# rubocop: disable Metrics/PerceivedComplexity
|
||||
# rubocop: disable Metrics/CyclomaticComplexity
|
||||
def keyrelay
|
||||
|
|
|
@ -423,7 +423,7 @@ class Epp::EppDomain < Domain
|
|||
abs_datetime = DateTime.parse(abs_datetime) if abs_datetime.present?
|
||||
|
||||
transaction do
|
||||
kr = keyrelays.create(
|
||||
kr = keyrelays.build(
|
||||
pa_date: Time.now,
|
||||
key_data_flags: parsed_frame.css('flags').text,
|
||||
key_data_protocol: parsed_frame.css('protocol').text,
|
||||
|
@ -436,6 +436,16 @@ class Epp::EppDomain < Domain
|
|||
accepter: registrar
|
||||
)
|
||||
|
||||
legal_document_data = self.class.parse_legal_document_from_frame(parsed_frame)
|
||||
if legal_document_data
|
||||
kr.legal_documents.build(
|
||||
document_type: legal_document_data[:type],
|
||||
body: legal_document_data[:body]
|
||||
)
|
||||
end
|
||||
|
||||
kr.save
|
||||
|
||||
return false unless valid?
|
||||
|
||||
registrar.messages.create!(
|
||||
|
|
|
@ -6,6 +6,8 @@ class Keyrelay < ActiveRecord::Base
|
|||
belongs_to :requester, class_name: 'Registrar'
|
||||
belongs_to :accepter, class_name: 'Registrar'
|
||||
|
||||
has_many :legal_documents, as: :documentable
|
||||
|
||||
delegate :name, to: :domain, prefix: true
|
||||
|
||||
validates :expiry_relative, duration_iso8601: true
|
||||
|
|
|
@ -168,4 +168,38 @@ describe 'EPP Keyrelay', epp: true do
|
|||
|
||||
@zone.messages.queued.count.should == msg_count
|
||||
end
|
||||
|
||||
it 'saves legal document with keyrelay' do
|
||||
xml = epp_xml.keyrelay({
|
||||
name: { value: domain.name },
|
||||
keyData: {
|
||||
flags: { value: '256' },
|
||||
protocol: { value: '3' },
|
||||
alg: { value: '8' },
|
||||
pubKey: { value: 'cmlraXN0aGViZXN0' }
|
||||
},
|
||||
authInfo: {
|
||||
pw: { value: domain.auth_info }
|
||||
},
|
||||
expiry: {
|
||||
relative: { value: 'P1D' },
|
||||
}
|
||||
}, {
|
||||
_anonymus: [
|
||||
legalDocument: {
|
||||
value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==',
|
||||
attrs: { type: 'pdf' }
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :elkdata)
|
||||
response[:msg].should == 'Command completed successfully'
|
||||
|
||||
docs = Keyrelay.last.legal_documents
|
||||
docs.count.should == 1
|
||||
docs.first.body.should == 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp=='
|
||||
docs.first.document_type.should == 'pdf'
|
||||
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue