mirror of
https://github.com/internetee/registry.git
synced 2025-07-22 10:45:58 +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
|
@ -423,7 +423,7 @@ class Epp::EppDomain < Domain
|
||||||
abs_datetime = DateTime.parse(abs_datetime) if abs_datetime.present?
|
abs_datetime = DateTime.parse(abs_datetime) if abs_datetime.present?
|
||||||
|
|
||||||
transaction do
|
transaction do
|
||||||
kr = keyrelays.create(
|
kr = keyrelays.build(
|
||||||
pa_date: Time.now,
|
pa_date: Time.now,
|
||||||
key_data_flags: parsed_frame.css('flags').text,
|
key_data_flags: parsed_frame.css('flags').text,
|
||||||
key_data_protocol: parsed_frame.css('protocol').text,
|
key_data_protocol: parsed_frame.css('protocol').text,
|
||||||
|
@ -436,6 +436,16 @@ class Epp::EppDomain < Domain
|
||||||
accepter: registrar
|
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?
|
return false unless valid?
|
||||||
|
|
||||||
registrar.messages.create!(
|
registrar.messages.create!(
|
||||||
|
|
|
@ -6,6 +6,8 @@ class Keyrelay < ActiveRecord::Base
|
||||||
belongs_to :requester, class_name: 'Registrar'
|
belongs_to :requester, class_name: 'Registrar'
|
||||||
belongs_to :accepter, class_name: 'Registrar'
|
belongs_to :accepter, class_name: 'Registrar'
|
||||||
|
|
||||||
|
has_many :legal_documents, as: :documentable
|
||||||
|
|
||||||
delegate :name, to: :domain, prefix: true
|
delegate :name, to: :domain, prefix: true
|
||||||
|
|
||||||
validates :expiry_relative, duration_iso8601: true
|
validates :expiry_relative, duration_iso8601: true
|
||||||
|
|
|
@ -168,4 +168,38 @@ describe 'EPP Keyrelay', epp: true do
|
||||||
|
|
||||||
@zone.messages.queued.count.should == msg_count
|
@zone.messages.queued.count.should == msg_count
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue