class Esignatur::Order

esignatur order representation More info: api.esignatur.dk/Documentation/Order

Attributes

api[R]
attributes[R]

Public Class Methods

new(attributes: {}, api:) click to toggle source
# File lib/esignatur/order.rb, line 17
def initialize(attributes: {}, api:)
  @attributes = attributes
  @api = api
end

Public Instance Methods

cancel(attributes) click to toggle source
# File lib/esignatur/order.rb, line 39
def cancel(attributes)
  camelized_attributes = attributes.transform_keys(&:to_s).transform_keys(&:camelize)
  creator_id = camelized_attributes.delete('CreatorId')

  data = { 'OrderId' => id }.merge(camelized_attributes.compact)
  headers = { 'X-eSignatur-CreatorId': creator_id }

  api_post('Cancel/CancelOrder', data, headers: headers).success?
end
create(attributes) click to toggle source
# File lib/esignatur/order.rb, line 22
def create(attributes)
  response = api_post('Order/Create', attributes)
  if errors.empty?
    body = response.json_body
    @attributes = attributes.merge(id: body.fetch('OrderId')).merge(body)
  end
  self
end
id() click to toggle source
# File lib/esignatur/order.rb, line 31
def id
  attributes[:id]
end
pades_list() click to toggle source
# File lib/esignatur/order.rb, line 49
def pades_list
  @pades_list ||= status.attributes['Documents'].map do |document|
    Esignatur::Pades.new(order: self, attributes: document, api: api)
  end
end
source_document() click to toggle source
# File lib/esignatur/order.rb, line 55
def source_document
  @source_document ||= Esignatur::SourceDocument.new(order: self, api: api)
end
status() click to toggle source
# File lib/esignatur/order.rb, line 35
def status
  @status ||= Esignatur::Status.new(order: self, api: api).tap(&:fetch)
end