billomat 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/documentation.yml +38 -0
- data/.github/workflows/test.yml +59 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +53 -0
- data/.yardopts +6 -0
- data/CHANGELOG.md +48 -0
- data/Dockerfile +29 -0
- data/Envfile +6 -0
- data/Gemfile +3 -1
- data/Makefile +135 -0
- data/README.md +4 -4
- data/Rakefile +74 -3
- data/billomat.gemspec +6 -3
- data/config/docker/.bash_profile +3 -0
- data/config/docker/.bashrc +48 -0
- data/config/docker/.inputrc +17 -0
- data/docker-compose.yml +9 -0
- data/lib/billomat/actions/cancel.rb +3 -5
- data/lib/billomat/actions/complete.rb +8 -12
- data/lib/billomat/actions/email.rb +6 -10
- data/lib/billomat/actions/pdf.rb +4 -10
- data/lib/billomat/actions/uncancel.rb +3 -6
- data/lib/billomat/actions.rb +0 -1
- data/lib/billomat/configuration.rb +1 -0
- data/lib/billomat/gateway.rb +42 -22
- data/lib/billomat/models/base.rb +25 -26
- data/lib/billomat/models/client.rb +3 -4
- data/lib/billomat/models/contact.rb +3 -4
- data/lib/billomat/models/credit_note.rb +18 -0
- data/lib/billomat/models/credit_note_item.rb +18 -0
- data/lib/billomat/models/invoice.rb +6 -11
- data/lib/billomat/models/invoice_item.rb +3 -3
- data/lib/billomat/models/invoice_payment.rb +3 -4
- data/lib/billomat/models/tag.rb +3 -4
- data/lib/billomat/models/template.rb +3 -4
- data/lib/billomat/models.rb +3 -2
- data/lib/billomat/search.rb +12 -14
- data/lib/billomat/version.rb +1 -1
- data/lib/billomat.rb +15 -18
- metadata +95 -6
- data/.travis.yml +0 -19
data/lib/billomat/search.rb
CHANGED
@@ -3,11 +3,9 @@
|
|
3
3
|
require 'uri'
|
4
4
|
|
5
5
|
module Billomat
|
6
|
-
|
7
|
-
# This class provides the possibility to query the resources
|
6
|
+
# This class provides the possibility to query the resources.
|
8
7
|
class Search
|
9
|
-
|
10
|
-
# Creates a new search object
|
8
|
+
# Creates a new search object.
|
11
9
|
#
|
12
10
|
# @param [Class] resource The resource class to be queried
|
13
11
|
# @param [Hash] hash The query
|
@@ -16,23 +14,22 @@ module Billomat
|
|
16
14
|
@hash = hash
|
17
15
|
end
|
18
16
|
|
19
|
-
# @return [String]
|
17
|
+
# @return [String] the path including the query
|
20
18
|
def path
|
21
19
|
"#{@resource.base_path}?#{hash_to_query}"
|
22
20
|
end
|
23
21
|
|
24
|
-
|
25
|
-
#
|
26
|
-
# Currently it will always return an empty array when no query is provided
|
22
|
+
# Runs the query and calls the gateway.
|
23
|
+
# Currently it will always return an empty array when no query is provided.
|
27
24
|
#
|
28
25
|
# @return [Array<Billomat::Model::Base>]
|
29
26
|
def run
|
30
|
-
return [] if @hash.reject { |
|
27
|
+
return [] if @hash.reject { |_k, v| v.nil? }.empty?
|
28
|
+
|
31
29
|
to_array(Billomat::Gateway.new(:get, path).run)
|
32
30
|
end
|
33
31
|
|
34
|
-
|
35
|
-
# Corrects the response to always return an array
|
32
|
+
# Corrects the response to always return an array.
|
36
33
|
#
|
37
34
|
# @todo Due to a strange API behaviour we have to fix the reponse here.
|
38
35
|
# This may be fixed in a new API version.
|
@@ -53,21 +50,22 @@ module Billomat
|
|
53
50
|
end
|
54
51
|
end
|
55
52
|
|
56
|
-
# @return [String]
|
53
|
+
# @return [String] the name of the resource
|
57
54
|
def name
|
58
55
|
@resource.resource_name
|
59
56
|
end
|
60
57
|
|
61
58
|
# @param [Hash] resp The response from the gateway
|
62
|
-
# @return [Integer]
|
59
|
+
# @return [Integer] the number of records found
|
63
60
|
def count(resp)
|
64
61
|
return 0 if resp.nil?
|
62
|
+
|
65
63
|
resp["#{name}s"]['@total'].to_i
|
66
64
|
end
|
67
65
|
|
68
66
|
private
|
69
67
|
|
70
|
-
# @return [String]
|
68
|
+
# @return [String] the query as www encoded string
|
71
69
|
def hash_to_query
|
72
70
|
URI.encode_www_form(@hash)
|
73
71
|
end
|
data/lib/billomat/version.rb
CHANGED
data/lib/billomat.rb
CHANGED
@@ -7,28 +7,25 @@ require 'billomat/actions'
|
|
7
7
|
require 'billomat/search'
|
8
8
|
require 'billomat/gateway'
|
9
9
|
|
10
|
-
|
11
|
-
# An wrapper for the
|
12
|
-
# <a href="https://billomat.com">Billomat</a>
|
13
|
-
# API
|
10
|
+
# An wrapper for the Billomat API.
|
14
11
|
module Billomat
|
15
12
|
class << self
|
16
13
|
attr_writer :configuration
|
17
|
-
end
|
18
14
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
15
|
+
# @return [Billomat::Configuration] the global billomat configuration
|
16
|
+
def configuration
|
17
|
+
@configuration ||= Billomat::Configuration.new
|
18
|
+
end
|
23
19
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
# Class method to set and change the global configuration.
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# Billomat.configure do |config|
|
24
|
+
# config.subdomain = 'your-business-name'
|
25
|
+
# config.api_key = 'a3b148a61cb642389b4f9953f6233f20'
|
26
|
+
# end
|
27
|
+
def configure
|
28
|
+
yield(configuration)
|
29
|
+
end
|
33
30
|
end
|
34
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: billomat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Vogt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -64,6 +64,26 @@ dependencies:
|
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0.11'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: railties
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 4.2.0
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '6.1'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 4.2.0
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '6.1'
|
67
87
|
- !ruby/object:Gem::Dependency
|
68
88
|
name: rake
|
69
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,20 +112,76 @@ dependencies:
|
|
92
112
|
- - "~>"
|
93
113
|
- !ruby/object:Gem::Version
|
94
114
|
version: '3.0'
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: rubocop
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 0.63.1
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: 0.63.1
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rubocop-rspec
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '1.31'
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '1.31'
|
95
143
|
- !ruby/object:Gem::Dependency
|
96
144
|
name: simplecov
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "<"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0.18'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - "<"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0.18'
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: yard
|
97
159
|
requirement: !ruby/object:Gem::Requirement
|
98
160
|
requirements:
|
99
161
|
- - "~>"
|
100
162
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
163
|
+
version: 0.9.18
|
102
164
|
type: :development
|
103
165
|
prerelease: false
|
104
166
|
version_requirements: !ruby/object:Gem::Requirement
|
105
167
|
requirements:
|
106
168
|
- - "~>"
|
107
169
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
170
|
+
version: 0.9.18
|
171
|
+
- !ruby/object:Gem::Dependency
|
172
|
+
name: yard-activesupport-concern
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - "~>"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: 0.0.1
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - "~>"
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: 0.0.1
|
109
185
|
description:
|
110
186
|
email:
|
111
187
|
- henning.vogt@hausgold.de
|
@@ -114,18 +190,29 @@ extensions: []
|
|
114
190
|
extra_rdoc_files: []
|
115
191
|
files:
|
116
192
|
- ".editorconfig"
|
193
|
+
- ".github/workflows/documentation.yml"
|
194
|
+
- ".github/workflows/test.yml"
|
117
195
|
- ".gitignore"
|
118
196
|
- ".rspec"
|
197
|
+
- ".rubocop.yml"
|
119
198
|
- ".simplecov"
|
120
|
-
- ".
|
199
|
+
- ".yardopts"
|
200
|
+
- CHANGELOG.md
|
201
|
+
- Dockerfile
|
202
|
+
- Envfile
|
121
203
|
- Gemfile
|
122
204
|
- LICENSE
|
205
|
+
- Makefile
|
123
206
|
- README.md
|
124
207
|
- Rakefile
|
125
208
|
- billomat.gemspec
|
126
209
|
- bin/console
|
127
210
|
- bin/setup
|
211
|
+
- config/docker/.bash_profile
|
212
|
+
- config/docker/.bashrc
|
213
|
+
- config/docker/.inputrc
|
128
214
|
- doc/assets/project.svg
|
215
|
+
- docker-compose.yml
|
129
216
|
- lib/billomat.rb
|
130
217
|
- lib/billomat/actions.rb
|
131
218
|
- lib/billomat/actions/cancel.rb
|
@@ -139,6 +226,8 @@ files:
|
|
139
226
|
- lib/billomat/models/base.rb
|
140
227
|
- lib/billomat/models/client.rb
|
141
228
|
- lib/billomat/models/contact.rb
|
229
|
+
- lib/billomat/models/credit_note.rb
|
230
|
+
- lib/billomat/models/credit_note_item.rb
|
142
231
|
- lib/billomat/models/invoice.rb
|
143
232
|
- lib/billomat/models/invoice_item.rb
|
144
233
|
- lib/billomat/models/invoice_payment.rb
|
@@ -159,7 +248,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
248
|
requirements:
|
160
249
|
- - ">="
|
161
250
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
251
|
+
version: '0'
|
163
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
253
|
requirements:
|
165
254
|
- - ">="
|
data/.travis.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
env:
|
3
|
-
global:
|
4
|
-
- CC_TEST_REPORTER_ID=0038fa77f81e980be74aed2e240dbcedd853de3a3ea3ff71cbb344e282d284a9
|
5
|
-
language: ruby
|
6
|
-
rvm:
|
7
|
-
- 2.6
|
8
|
-
- 2.5
|
9
|
-
- 2.4
|
10
|
-
- 2.3
|
11
|
-
before_install: gem install bundler
|
12
|
-
before_script:
|
13
|
-
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
14
|
-
- chmod +x ./cc-test-reporter
|
15
|
-
- ./cc-test-reporter before-build
|
16
|
-
script:
|
17
|
-
- bundle exec rspec
|
18
|
-
after_script:
|
19
|
-
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|