Class: Fakturoid::Client::Invoice

Inherits:
Api
  • Object
show all
Defined in:
lib/fakturoid/client/invoice.rb

Class Method Summary collapse

Methods inherited from Api

config, configure

Methods included from Api::Arguments

#permit_params, #validate_numerical_id, #validate_search_query

Methods included from Api::HttpMethods

#delete_request, #get_request, #patch_request, #post_request

Class Method Details

.all(params = {}) ⇒ Object



4
5
6
7
8
# File 'lib/fakturoid/client/invoice.rb', line 4

def self.all(params = {})
  request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}

  get_request('invoices.json', request_params: request_params)
end

.create(payload = {}) ⇒ Object



50
51
52
# File 'lib/fakturoid/client/invoice.rb', line 50

def self.create(payload = {})
  post_request('invoices.json', payload: payload)
end

.delete(id) ⇒ Object



59
60
61
62
# File 'lib/fakturoid/client/invoice.rb', line 59

def self.delete(id)
  validate_numerical_id(id)
  delete_request("invoices/#{id}.json")
end

.deliver_message(invoice_id, payload = {}) ⇒ Object



45
46
47
48
# File 'lib/fakturoid/client/invoice.rb', line 45

def self.deliver_message(invoice_id, payload = {})
  validate_numerical_id(invoice_id)
  post_request("invoices/#{invoice_id}/message.json", payload: payload)
end

.download_pdf(id) ⇒ Object



32
33
34
35
# File 'lib/fakturoid/client/invoice.rb', line 32

def self.download_pdf(id)
  validate_numerical_id(id)
  get_request("invoices/#{id}/download.pdf", headers: { content_type: 'application/pdf' })
end

.find(id) ⇒ Object



22
23
24
25
# File 'lib/fakturoid/client/invoice.rb', line 22

def self.find(id)
  validate_numerical_id(id)
  get_request("invoices/#{id}.json")
end

.fire(id, event, params = {}) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/fakturoid/client/invoice.rb', line 37

def self.fire(id, event, params = {})
  request_params = permit_params(params, :paid_at, :paid_amount) || {}
  request_params[:event] = event

  validate_numerical_id(id)
  post_request("invoices/#{id}/fire.json", request_params: request_params)
end

.proforma(params = {}) ⇒ Object



16
17
18
19
20
# File 'lib/fakturoid/client/invoice.rb', line 16

def self.proforma(params = {})
  request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}

  get_request('invoices/proforma.json', request_params: request_params)
end

.regular(params = {}) ⇒ Object



10
11
12
13
14
# File 'lib/fakturoid/client/invoice.rb', line 10

def self.regular(params = {})
  request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}

  get_request('invoices/regular.json', request_params: request_params)
end

.search(query) ⇒ Object



27
28
29
30
# File 'lib/fakturoid/client/invoice.rb', line 27

def self.search(query)
  validate_search_query(query)
  get_request('invoices/search.json', request_params: { query: query })
end

.update(id, payload = {}) ⇒ Object



54
55
56
57
# File 'lib/fakturoid/client/invoice.rb', line 54

def self.update(id, payload = {})
  validate_numerical_id(id)
  patch_request("invoices/#{id}.json", payload: payload)
end