Class: Esignatur::Order
- Inherits:
-
Object
- Object
- Esignatur::Order
- Includes:
- ApiResource
- Defined in:
- lib/esignatur/order.rb
Overview
esignatur order representation More info: api.esignatur.dk/Documentation/Order
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
Instance Method Summary collapse
- #cancel(attributes = {}, **keyword_attributes) ⇒ Object
- #create(attributes = {}, **keyword_attributes) ⇒ Object
- #id ⇒ Object
-
#initialize(attributes: {}, api:) ⇒ Order
constructor
A new instance of Order.
- #pades_list ⇒ Object
- #source_document ⇒ Object
- #status ⇒ Object
Methods included from ApiResource
Constructor Details
#initialize(attributes: {}, api:) ⇒ Order
Returns a new instance of Order.
17 18 19 20 |
# File 'lib/esignatur/order.rb', line 17 def initialize(attributes: {}, api:) @attributes = attributes @api = api end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
15 16 17 |
# File 'lib/esignatur/order.rb', line 15 def attributes @attributes end |
Instance Method Details
#cancel(attributes = {}, **keyword_attributes) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/esignatur/order.rb', line 41 def cancel(attributes = {}, **keyword_attributes) camelized_attributes = attributes.merge(keyword_attributes).transform_keys(&:to_s).transform_keys(&:camelize) data = { 'OrderId' => id }.merge(camelized_attributes.compact) api_post('Cancel/CancelOrder', data).success? end |
#create(attributes = {}, **keyword_attributes) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/esignatur/order.rb', line 22 def create(attributes = {}, **keyword_attributes) response = api_post('Order/Create', attributes.merge(keyword_attributes)) if errors.empty? body = response.json_body @attributes = attributes.merge(id: body.fetch('OrderId')).merge(body) end self end |
#id ⇒ Object
33 34 35 |
# File 'lib/esignatur/order.rb', line 33 def id attributes[:id] end |
#pades_list ⇒ Object
48 49 50 51 52 |
# File 'lib/esignatur/order.rb', line 48 def pades_list @pades_list ||= status.attributes['Documents'].map do |document| Esignatur::Pades.new(order: self, attributes: document, api: api) end end |
#source_document ⇒ Object
54 55 56 |
# File 'lib/esignatur/order.rb', line 54 def source_document @source_document ||= Esignatur::SourceDocument.new(order: self, api: api) end |
#status ⇒ Object
37 38 39 |
# File 'lib/esignatur/order.rb', line 37 def status @status ||= Esignatur::Status.new(order: self, api: api).tap(&:fetch) end |