class Fiscalizer::Serializers::Base
Attributes
demo[R]
object[R]
private_key[R]
public_key[R]
Public Class Methods
new(object, private_key, public_key, demo)
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 6 def initialize(object, private_key, public_key, demo) @object = object @private_key = private_key @public_key = public_key @demo = demo end
Public Instance Methods
call()
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 15 def call sign_xml end
Private Instance Methods
add_header(xml)
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 49 def add_header(xml) xml['tns'].Zaglavlje do xml['tns'].IdPoruke object.uuid xml['tns'].DatumVrijeme object.time_sent_str end end
add_signature(xml)
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 56 def add_signature(xml) Serializers::Signature.new(xml, "##{message_id}", public_key, cert_issuer).call end
cert_issuer()
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 60 def cert_issuer demo ? DEMO_CERT_ISSUER : PROD_CERT_ISSUER end
root_hash()
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 40 def root_hash { 'xmlns:tns' => TNS, 'xmlns:xsi' => XSI, 'xsi:schemaLocation' => SCHEMA_LOCATION, 'Id' => message_id } end
sign_xml()
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 21 def sign_xml document = Xmldsig_fiscalizer::SignedDocument.new(xml_with_soap_envelope.doc.root.to_xml) signed_xml = document.sign(private_key) signed_xml.sub!('<?xml version="1.0"?>', '') signed_xml = signed_xml.gsub(/^$\n/, '') object.generated_xml = signed_xml signed_xml end
xml_with_soap_envelope()
click to toggle source
# File lib/fiscalizer/serializers/base.rb, line 30 def xml_with_soap_envelope Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml| xml['soapenv'].Envelope('xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/') do xml['soapenv'].Body do xml << raw_xml.doc.root.to_xml end end end end