Class: Ticketbai::Operation

Inherits:
Object
  • Object
show all
Defined in:
lib/ticketbai/operation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Operation

Returns a new instance of Operation.



5
6
7
8
9
10
11
# File 'lib/ticketbai/operation.rb', line 5

def initialize(args)
  self.class::ATTRIBUTES.each do |p|
    instance_variable_set "@#{p}", args[p]
  end

  @company_cert = Ticketbai.config.certificates[args[:company_cert]]
end

Instance Attribute Details

#company_certObject

Returns the value of attribute company_cert.



3
4
5
# File 'lib/ticketbai/operation.rb', line 3

def company_cert
  @company_cert
end

Instance Method Details

#build_documentObject

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/ticketbai/operation.rb', line 33

def build_document
  raise NotImplementedError, 'Must implement this method'
end

#createHash

Creates the Ticketbai operation by doing the following:

  1. Build the document

  2. Sign the document

  3. Validate the signed document

Returns:

  • (Hash)

    xml_doc: The signed document. signature_value: The first 100 characters of the signature value



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ticketbai/operation.rb', line 21

def create
  document = build_document

  signed_document = sign_document(document)

  validate_document(signed_document)

  signature_value = read_signature_value(signed_document)[0..99]

  { xml_doc: signed_document, signature_value: signature_value }
end