fakturoid 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cae22776ba1f641b53df7971a9fff3638dd72d12cd8b5cdaf9119fe50fe6bbd
4
- data.tar.gz: 8f419fd25dfca96f55350b7191b558901066686b13abaec8dbdd24b40edeca6b
3
+ metadata.gz: 3ef863bf7aae45cfbf91d5c50c8f8b28d6b50aba851fcb2a0478f04364127d60
4
+ data.tar.gz: bf9e9c5cad8973615dc48e9c76c7e3c6061ad9bef6558725740348c751a201c6
5
5
  SHA512:
6
- metadata.gz: 0d811acd5330902725beee5c17be2def9ac46a5818669e0a95003603aceca34239f93bbb07bc9d90f57f55aed027f5de2fa0bc5bd04eab3ef232d9f2024e69d5
7
- data.tar.gz: 2554b7dd7c746b2eb08ddc3374f70ee5854d0f9e211a8974c96ff663c78032b1314843a8386ef0314bc9c315fdbef0608921b4f2ac2dcf78c59a03cda15f83e9
6
+ metadata.gz: aec705fea7250afb8fef4cd70ed1b20c472a9510d21122d9cfffaf83b3cd1e32158d55612d34492ce5cef662e07d1738dc0c577c666cb0818a108c1d2c7ef70c
7
+ data.tar.gz: 9242d93bba87c3c15f479d6c042b26cfae52831ec327105b1f1ecebd6fecadfcb4aeaea98f99c242555b944ddb1797e54ad6cc6ffcf504d7d52c76761dbd076b
@@ -0,0 +1,20 @@
1
+ # https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-ruby
2
+ # https://github.com/actions/starter-workflows/blob/main/ci/ruby.yml
3
+
4
+ name: Rubocop
5
+ on: [push, pull_request]
6
+
7
+ jobs:
8
+ test:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+
13
+ - name: Set up Ruby
14
+ uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.7
17
+ bundler-cache: true
18
+
19
+ - name: Rubocop
20
+ run: bundle exec rubocop
@@ -0,0 +1,27 @@
1
+ # https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-ruby
2
+ # https://github.com/actions/starter-workflows/blob/main/ci/ruby.yml
3
+
4
+ name: Tests
5
+ on: [push, pull_request]
6
+
7
+ jobs:
8
+ test:
9
+
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ ruby-version: ['2.6', '2.7', '3.0']
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+
18
+ - name: Set up Ruby
19
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
20
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
25
+
26
+ - name: Run tests
27
+ run: bundle exec rake
data/.rubocop.yml CHANGED
@@ -1,35 +1,77 @@
1
- Metrics/LineLength:
1
+ AllCops:
2
+ TargetRubyVersion: 2.7
3
+ SuggestExtensions: false
4
+ NewCops: disable
5
+ Exclude:
6
+ - 'Rakefile'
7
+ - 'fakturoid.gemspec'
8
+ - 'vendor/**/*'
9
+
10
+ Style/Documentation:
11
+ Enabled: false
12
+
13
+ Layout/LineLength:
2
14
  Enabled: false
3
15
 
4
16
  Metrics/ClassLength:
5
17
  Exclude:
6
18
  - 'test/**/*'
7
19
 
8
- Style/AccessModifierIndentation:
20
+ Metrics/BlockLength:
21
+ Exclude:
22
+ - 'test/**/*'
23
+
24
+ Layout/AccessModifierIndentation:
9
25
  EnforcedStyle: outdent
10
26
 
11
- Style/CaseIndentation:
27
+ Layout/CaseIndentation:
12
28
  IndentOneStep: true
13
29
 
14
30
  Style/SignalException:
15
31
  EnforcedStyle: only_raise
16
32
 
17
- Style/TrailingWhitespace:
33
+ Layout/TrailingWhitespace:
18
34
  Enabled: false
19
35
 
20
36
  Style/ClassAndModuleChildren:
21
37
  Exclude:
22
38
  - 'test/**/*'
23
39
 
24
- Style/SpaceAroundOperators:
25
- MultiSpaceAllowedForOperators:
26
- - '<'
27
- - '='
40
+ Metrics/PerceivedComplexity:
41
+ Enabled: false
28
42
 
29
- Documentation:
43
+ Metrics/MethodLength:
30
44
  Enabled: false
31
45
 
32
- AllCops:
46
+ Metrics/AbcSize:
47
+ Enabled: false
48
+
49
+ Metrics/CyclomaticComplexity:
50
+ Enabled: false
51
+
52
+ Style/NegatedIf:
33
53
  Exclude:
34
- - 'Rakefile'
35
- - 'fakturoid.gemspec'
54
+ - 'lib/fakturoid/response.rb'
55
+
56
+ Naming/MemoizedInstanceVariableName:
57
+ Exclude:
58
+ - 'lib/fakturoid/api.rb'
59
+
60
+ Layout/EmptyLineAfterGuardClause:
61
+ Enabled: false
62
+
63
+ Layout/EmptyLineBetweenDefs:
64
+ Enabled: false
65
+
66
+ Style/RescueStandardError:
67
+ Exclude:
68
+ - 'test/response_test.rb'
69
+
70
+ Style/TrivialAccessors:
71
+ Enabled: false
72
+
73
+ Style/StringLiterals:
74
+ EnforcedStyle: double_quotes
75
+
76
+ Style/SymbolArray:
77
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ 3.0.3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,36 @@
1
+ ## 0.4.0
2
+
3
+ - Fix Faraday v1.x deprecations.
4
+ - Add support for Faraday v2.x.
5
+ - Add support form number formats endpoint
6
+
7
+ ```ruby
8
+ number_formats = Fakturoid::Client::NumberFormat.invoices
9
+ ```
10
+
11
+ - Add support for `until`, `updated_until` and `custom_id`
12
+ params to invoice index action methods
13
+
14
+ ```ruby
15
+ invoices = Fakturoid::Client::Invoice.all(since: "2022-03-01T00:00:00+01:00", until: "2022-03-31T23:59:59+01:00")
16
+ invoices = Fakturoid::Client::Invoice.regular(updated_since: "2022-03-01T00:00:00+01:00", updated_until: "2022-03-31T23:59:59+01:00")
17
+ proformas = Fakturoid::Client::Invoice.proforma(custom_id: "custom-123")
18
+ ```
19
+
20
+ - Add support for `custom_id` param to expense index action method
21
+
22
+ ```ruby
23
+ Fakturoid::Client::Expense.all(custom_id: "custom-123")
24
+ ```
25
+
26
+ - Add support for pagination to search endpoints
27
+
28
+ ```ruby
29
+ Fakturoid::Client::Invoice.search("apples", page: 3)
30
+ Fakturoid::Client::Expense.search("computers", page: 2)
31
+ Fakturoid::Client::Subject.search("apple", page: 2)
32
+ ```
33
+
1
34
  ## 0.3.0
2
35
 
3
36
  - Add support for `variable_symbol` and `bank_account_id` param in invoice `fire` method.
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
2
4
 
3
5
  # Specify your gem's dependencies in fakturoid.gemspec
4
6
  gemspec
data/README.md CHANGED
@@ -1,17 +1,18 @@
1
1
  # Fakturoid
2
2
 
3
3
  The Fakturoid gem is ruby library for API communication with web based invoicing service [www.fakturoid.cz](https://fakturoid.cz).
4
- Fakturoid [API documentation](http://docs.fakturoid.apiary.io).
4
+ Fakturoid [API documentation](https://fakturoid.docs.apiary.io/).
5
5
 
6
6
  [![Gem Version](https://badge.fury.io/rb/fakturoid.svg)](http://badge.fury.io/rb/fakturoid)
7
- [![Circle CI](https://circleci.com/gh/fakturoid/fakturoid-ruby.svg?style=svg)](https://circleci.com/gh/fakturoid/fakturoid-ruby)
7
+ [![Tests](https://github.com/fakturoid/fakturoid-ruby/actions/workflows/tests.yml/badge.svg)](https://github.com/fakturoid/fakturoid-ruby/actions/workflows/tests.yml)
8
+ [![Rubocop](https://github.com/fakturoid/fakturoid-ruby/actions/workflows/rubocop.yml/badge.svg)](https://github.com/fakturoid/fakturoid-ruby/actions/workflows/rubocop.yml)
8
9
 
9
10
  ## Installation
10
11
 
11
12
  Add this line to your application's Gemfile:
12
13
 
13
14
  ```ruby
14
- gem 'fakturoid'
15
+ gem "fakturoid"
15
16
  ```
16
17
 
17
18
  And then run:
@@ -24,10 +25,10 @@ Fakturoid gem is configured within config block placed in `config/initializers/f
24
25
 
25
26
  ```ruby
26
27
  Fakturoid.configure do |config|
27
- config.email = 'yourfakturoid@email.com'
28
- config.api_key = 'fasdff823fdasWRFKW843ladfjklasdf834'
29
- config.account = 'applecorp' # former subdomain (first part of URL)
30
- config.user_agent = 'Name of your app (your@email.com)'
28
+ config.email = "yourfakturoid@email.com"
29
+ config.api_key = "fasdff823fdasWRFKW843ladfjklasdf834"
30
+ config.account = "applecorp" # former subdomain (first part of URL)
31
+ config.user_agent = "Name of your app (your@email.com)"
31
32
  end
32
33
  ```
33
34
 
@@ -35,7 +36,7 @@ end
35
36
 
36
37
  ### Account resource
37
38
 
38
- To get informations about your account in Fakturoid run following code:
39
+ To get information about your account in Fakturoid run following code:
39
40
 
40
41
  ```ruby
41
42
  response = Fakturoid::Client::Account.current
@@ -46,11 +47,11 @@ response.body # contains hash with returned body
46
47
  Accessing content of returned body:
47
48
 
48
49
  ```ruby
49
- response.body['name'] # return name of your company
50
+ response.body["name"] # return name of your company
50
51
  response.name # alternative way of getting the name of your company
51
52
  ```
52
53
 
53
- For the list of all returned account fields see the [Account API documentation](http://docs.fakturoid.apiary.io/#account)
54
+ For the list of all returned account fields see the [Account API documentation](https://fakturoid.docs.apiary.io/#reference/account)
54
55
 
55
56
  ### User resource
56
57
 
@@ -72,7 +73,17 @@ If you want to get information about one user which belongs to account use:
72
73
  response = Fakturoid::Client::User.find(user_id)
73
74
  ```
74
75
 
75
- For the list of all returned user fields see the [Users API documentation](http://docs.fakturoid.apiary.io/#users)
76
+ For the list of all returned user fields see the [Users API documentation](https://fakturoid.docs.apiary.io/#reference/users)
77
+
78
+ ### Number Format resource
79
+
80
+ For the list of invoice number formats which belong to the current account:
81
+
82
+ ```ruby
83
+ response = Fakturoid::Client::NumberFormat.invoices
84
+ ```
85
+
86
+ For the list of all returned user fields see the [Number formats API documentation](https://fakturoid.docs.apiary.io/#reference/number-formats)
76
87
 
77
88
  ### Subject resource
78
89
 
@@ -85,7 +96,7 @@ response = Fakturoid::Client::Subject.all(page: 2)
85
96
  Fulltext search subjects:
86
97
 
87
98
  ```ruby
88
- response = Fakturoid::Client::Subject.search('Client name')
99
+ response = Fakturoid::Client::Subject.search("Client name")
89
100
  ```
90
101
 
91
102
  To find one subject use:
@@ -97,13 +108,13 @@ response = Fakturoid::Client::Subject.find(subject_id)
97
108
  You can create new subject with:
98
109
 
99
110
  ```ruby
100
- response = Fakturoid::Client::Subject.create(name: 'New client')
111
+ response = Fakturoid::Client::Subject.create(name: "New client")
101
112
  ```
102
113
 
103
114
  To update subject use following code:
104
115
 
105
116
  ```ruby
106
- response = Fakturoid::Client::Subject.update(subject_id, name: 'Updated client')
117
+ response = Fakturoid::Client::Subject.update(subject_id, name: "Updated client")
107
118
  ```
108
119
 
109
120
  Delete subject:
@@ -112,7 +123,7 @@ Delete subject:
112
123
  Fakturoid::Client::Subject.delete subject_id
113
124
  ```
114
125
 
115
- For the list of all subject fields and options see the [Subjects API documentation](http://docs.fakturoid.apiary.io/#subjects)
126
+ For the list of all subject fields and options see the [Subjects API documentation](https://fakturoid.docs.apiary.io/#reference/subjects)
116
127
 
117
128
  ### Invoice resource
118
129
 
@@ -125,7 +136,7 @@ response = Fakturoid::Client::Invoice.all(page: 2)
125
136
  Fulltext search invoices:
126
137
 
127
138
  ```ruby
128
- response = Fakturoid::Client::Invoice.search('Client name')
139
+ response = Fakturoid::Client::Invoice.search("Client name")
129
140
  ```
130
141
 
131
142
  To find one invoice use:
@@ -139,8 +150,8 @@ To download invoice in PDF format you can use following code:
139
150
  ```ruby
140
151
  response = Fakturoid::Client::Invoice.download_pdf(invoice_id)
141
152
 
142
- File.open '/path/to/file.pdf', 'w' do |f|
143
- f.write response.body
153
+ File.open("/path/to/file.pdf", "wb") do |f|
154
+ f.write(response.body)
144
155
  end
145
156
  ```
146
157
 
@@ -152,9 +163,9 @@ invoice = {
152
163
  lines: [
153
164
  {
154
165
  quantity: 5,
155
- unit_name: 'kg',
156
- name: 'Sand',
157
- unit_price: '100',
166
+ unit_name: "kg",
167
+ name: "Sand",
168
+ unit_price: "100",
158
169
  vat_rate: 21
159
170
  }
160
171
  ]
@@ -165,16 +176,16 @@ response = Fakturoid::Client::Invoice.create(invoice)
165
176
  Invoice actions (eg. pay invoice):
166
177
 
167
178
  ```ruby
168
- response = Fakturoid::Client::Invoice.fire(invoice_id, 'pay')
179
+ response = Fakturoid::Client::Invoice.fire(invoice_id, "pay")
169
180
  ```
170
181
 
171
- Send invoice with customized message (for more information see [the API Documentation](http://docs.fakturoid.apiary.io/#messages)):
182
+ Send invoice with customized message (for more information see [the API Documentation](https://fakturoid.docs.apiary.io/#reference/messages)):
172
183
 
173
184
  ```ruby
174
185
  message = {
175
- email: 'testemail@testemail.cz',
176
- email_copy: 'some@emailcopy.cz',
177
- subject: 'I have an invoice for you',
186
+ email: "testemail@testemail.cz",
187
+ email_copy: "some@emailcopy.cz",
188
+ subject: "I have an invoice for you",
178
189
  message: "Hi,\n\nyou can find invoice no. #no# on the following page #link#\n\nHave a nice day"
179
190
  }
180
191
 
@@ -185,7 +196,7 @@ response.status_code # => 201
185
196
  To update invoice use following code:
186
197
 
187
198
  ```ruby
188
- response = Fakturoid::Client::Invoice.update(invoice_id, number: '2015-0015')
199
+ response = Fakturoid::Client::Invoice.update(invoice_id, number: "2015-0015")
189
200
  ```
190
201
 
191
202
  Delete invoice:
@@ -194,7 +205,7 @@ Delete invoice:
194
205
  response = Fakturoid::Client::Invoice.delete(invoice_id)
195
206
  ```
196
207
 
197
- For the list of all invoice fields and options see the [Invoices API documentation](http://docs.fakturoid.apiary.io/#invoices)
208
+ For the list of all invoice fields and options see the [Invoices API documentation](https://fakturoid.docs.apiary.io/#reference/invoices)
198
209
 
199
210
  ## Handling error responses
200
211
 
@@ -258,6 +269,3 @@ The Fakturoid gem raises exceptions if error response is returned from the serve
258
269
  </tr>
259
270
  </tbody>
260
271
  </table>
261
-
262
- ## Thanks
263
- Development was supported by [eBallance Creative s.r.o.](http://www.eballance.cz)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  class Api
3
5
  module Arguments
@@ -11,7 +13,7 @@ module Fakturoid
11
13
  end
12
14
 
13
15
  def validate_search_query(query)
14
- raise ArgumentError, 'Query parameter is required' if query.nil? || query.empty?
16
+ raise ArgumentError, "Query parameter is required" if query.nil? || query.empty?
15
17
  true
16
18
  end
17
19
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  class Api
3
5
  module HttpMethods
data/lib/fakturoid/api.rb CHANGED
@@ -1,5 +1,7 @@
1
- require 'fakturoid/api/arguments'
2
- require 'fakturoid/api/http_methods'
1
+ # frozen_string_literal: true
2
+
3
+ require "fakturoid/api/arguments"
4
+ require "fakturoid/api/http_methods"
3
5
 
4
6
  module Fakturoid
5
7
  class Api
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Account < Fakturoid::Api
4
6
  def self.current
5
- get_request('account.json')
7
+ get_request("account.json")
6
8
  end
7
9
  end
8
10
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class BankAccount < Fakturoid::Api
4
6
  def self.all
5
- get_request('bank_accounts.json')
7
+ get_request("bank_accounts.json")
6
8
  end
7
9
  end
8
10
  end
@@ -1,16 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Event < Fakturoid::Api
4
6
  def self.all(params = {})
5
7
  request_params = permit_params(params, :page, :since, :subject_id) || {}
6
8
 
7
- get_request('events.json', request_params: request_params)
9
+ get_request("events.json", request_params: request_params)
8
10
  end
9
11
 
10
12
  def self.paid(params = {})
11
13
  request_params = permit_params(params, :page, :since, :subject_id) || {}
12
14
 
13
- get_request('events/paid.json', request_params: request_params)
15
+ get_request("events/paid.json", request_params: request_params)
14
16
  end
15
17
  end
16
18
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Expense < Fakturoid::Api
4
6
  def self.all(params = {})
5
- request_params = permit_params(params, :page, :since, :updated_since, :number, :variable_symbol, :status, :subject_id) || {}
7
+ request_params = permit_params(params, :page, :since, :updated_since, :number, :variable_symbol, :status, :subject_id, :custom_id) || {}
6
8
 
7
- get_request('expenses.json', request_params: request_params)
9
+ get_request("expenses.json", request_params: request_params)
8
10
  end
9
11
 
10
12
  def self.find(id)
@@ -12,9 +14,13 @@ module Fakturoid
12
14
  get_request("expenses/#{id}.json")
13
15
  end
14
16
 
15
- def self.search(query)
17
+ def self.search(query, params = {})
16
18
  validate_search_query(query)
17
- get_request('expenses/search.json', request_params: { query: query })
19
+
20
+ request_params = permit_params(params, :page)
21
+ request_params[:query] = query
22
+
23
+ get_request("expenses/search.json", request_params: request_params)
18
24
  end
19
25
 
20
26
  def self.fire(id, event, params = {})
@@ -26,7 +32,7 @@ module Fakturoid
26
32
  end
27
33
 
28
34
  def self.create(payload = {})
29
- post_request('expenses.json', payload: payload)
35
+ post_request("expenses.json", payload: payload)
30
36
  end
31
37
 
32
38
  def self.update(id, payload = {})
@@ -1,22 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Generator < Fakturoid::Api
4
6
  def self.all(params = {})
5
7
  request_params = permit_params(params, :page, :since, :updated_since, :subject_id) || {}
6
8
 
7
- get_request('generators.json', request_params: request_params)
9
+ get_request("generators.json", request_params: request_params)
8
10
  end
9
11
 
10
12
  def self.recurring(params = {})
11
13
  request_params = permit_params(params, :page, :since, :updated_since, :subject_id) || {}
12
14
 
13
- get_request('generators/recurring.json', request_params: request_params)
15
+ get_request("generators/recurring.json", request_params: request_params)
14
16
  end
15
17
 
16
18
  def self.template(params = {})
17
19
  request_params = permit_params(params, :page, :since, :updated_since, :subject_id) || {}
18
20
 
19
- get_request('generators/template.json', request_params: request_params)
21
+ get_request("generators/template.json", request_params: request_params)
20
22
  end
21
23
 
22
24
  def self.find(id)
@@ -25,7 +27,7 @@ module Fakturoid
25
27
  end
26
28
 
27
29
  def self.create(payload = {})
28
- post_request('generators.json', payload: payload)
30
+ post_request("generators.json", payload: payload)
29
31
  end
30
32
 
31
33
  def self.update(id, payload = {})
@@ -1,22 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Invoice < Fakturoid::Api
6
+ INDEX_PARAMS = [:page, :since, :until, :updated_since, :updated_until, :number, :status, :subject_id, :custom_id].freeze
7
+
4
8
  def self.all(params = {})
5
- request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}
9
+ request_params = permit_params(params, *INDEX_PARAMS) || {}
6
10
 
7
- get_request('invoices.json', request_params: request_params)
11
+ get_request("invoices.json", request_params: request_params)
8
12
  end
9
13
 
10
14
  def self.regular(params = {})
11
- request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}
15
+ request_params = permit_params(params, *INDEX_PARAMS) || {}
12
16
 
13
- get_request('invoices/regular.json', request_params: request_params)
17
+ get_request("invoices/regular.json", request_params: request_params)
14
18
  end
15
19
 
16
20
  def self.proforma(params = {})
17
- request_params = permit_params(params, :page, :since, :updated_since, :number, :status, :subject_id) || {}
21
+ request_params = permit_params(params, *INDEX_PARAMS) || {}
18
22
 
19
- get_request('invoices/proforma.json', request_params: request_params)
23
+ get_request("invoices/proforma.json", request_params: request_params)
20
24
  end
21
25
 
22
26
  def self.find(id)
@@ -24,14 +28,18 @@ module Fakturoid
24
28
  get_request("invoices/#{id}.json")
25
29
  end
26
30
 
27
- def self.search(query)
31
+ def self.search(query, params = {})
28
32
  validate_search_query(query)
29
- get_request('invoices/search.json', request_params: { query: query })
33
+
34
+ request_params = permit_params(params, :page)
35
+ request_params[:query] = query
36
+
37
+ get_request("invoices/search.json", request_params: request_params)
30
38
  end
31
39
 
32
40
  def self.download_pdf(id)
33
41
  validate_numerical_id(id)
34
- get_request("invoices/#{id}/download.pdf", headers: { content_type: 'application/pdf' })
42
+ get_request("invoices/#{id}/download.pdf", headers: { content_type: "application/pdf" })
35
43
  end
36
44
 
37
45
  def self.fire(id, event, params = {})
@@ -48,7 +56,7 @@ module Fakturoid
48
56
  end
49
57
 
50
58
  def self.create(payload = {})
51
- post_request('invoices.json', payload: payload)
59
+ post_request("invoices.json", payload: payload)
52
60
  end
53
61
 
54
62
  def self.update(id, payload = {})
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Fakturoid
4
+ module Client
5
+ class NumberFormat < Fakturoid::Api
6
+ def self.invoices
7
+ get_request("number_formats/invoices.json")
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fakturoid
2
4
  module Client
3
5
  class Subject < Fakturoid::Api
4
6
  def self.all(params = {})
5
7
  request_params = permit_params(params, :page, :since, :updated_since, :custom_id) || {}
6
8
 
7
- get_request('subjects.json', request_params: request_params)
9
+ get_request("subjects.json", request_params: request_params)
8
10
  end
9
11
 
10
12
  def self.find(id)
@@ -12,13 +14,17 @@ module Fakturoid
12
14
  get_request("subjects/#{id}.json")
13
15
  end
14
16
 
15
- def self.search(query)
17
+ def self.search(query, params = {})
16
18
  validate_search_query(query)
17
- get_request('subjects/search.json', request_params: { query: query })
19
+
20
+ request_params = permit_params(params, :page)
21
+ request_params[:query] = query
22
+
23
+ get_request("subjects/search.json", request_params: request_params)
18
24
  end
19
25
 
20
26
  def self.create(payload = {})
21
- post_request('subjects.json', payload: payload)
27
+ post_request("subjects.json", payload: payload)
22
28
  end
23
29
 
24
30
  def self.update(id, payload = {})