Class: Listo::Invoicing
- Inherits:
-
Object
- Object
- Listo::Invoicing
- Extended by:
- Forwardable
- Defined in:
- lib/listo/invoicing.rb
Class Method Summary collapse
- .cancel(id) ⇒ Object
- .certify_xml(xml, original_chain, data) ⇒ Object
- .export_json(params = []) ⇒ Object
- .generate_xml(params = []) ⇒ Object
- .pay(id, params = []) ⇒ Object
- .search ⇒ Object
Class Method Details
.cancel(id) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/listo/invoicing.rb', line 50 def cancel(id) params = { passcode: client.pkey_passphrase, certificate_der: cert.to_der64, private_key_der: pkey.base64, } response = client.connection.post("invoicing/cancel/invoice/#{id}/", params).body success_codes = [ 201, # returned after the cancellation request 202 # returned after a cancellation request for an already requested cancellation invoice ] if success_codes.exclude? response.dig('code') raise Listo::Error::CancelError, response.dig('message') end response end |
.certify_xml(xml, original_chain, data) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/listo/invoicing.rb', line 30 def certify_xml(xml, original_chain, data) params = { xml: xml, certificate_num: certificate_num, certificate: certificate, signature: signature(original_chain), data: data, } response = client.connection.post('invoicing/certify_xml', params).body # warning: listo reponds stamp errors with HTTP 200 if response.dig('status') == 'error' raise Listo::Error::StampError, response.dig('error_description') end response end |
.export_json(params = []) ⇒ Object
22 23 24 |
# File 'lib/listo/invoicing.rb', line 22 def export_json(params = []) client.connection.get('invoices/export_json', params) end |
.generate_xml(params = []) ⇒ Object
26 27 28 |
# File 'lib/listo/invoicing.rb', line 26 def generate_xml(params = []) client.connection.post('invoicing/generate_xml', params).body end |
.pay(id, params = []) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/listo/invoicing.rb', line 11 def pay(id, params = []) client.connection.post do |request| request.url "invoices/#{id}/payments/" request.body = params end.body end |
.search ⇒ Object
18 19 20 |
# File 'lib/listo/invoicing.rb', line 18 def search client.connection.get('invoices/search') end |