qbo_api 1.3.0 → 1.4.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/README.md +16 -1
- data/lib/qbo_api.rb +11 -10
- data/lib/qbo_api/configuration.rb +8 -0
- data/lib/qbo_api/util.rb +15 -0
- data/lib/qbo_api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e13df877cf63f1959afcef602f250f85f16c73f
|
4
|
+
data.tar.gz: cffab533c3c65f5db86830a721341b2680cafac9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95c7b44ab0590fbc503f9b38dbd1d7b34cb46319ff932b7954de8803b275a05b4f3a62e776e7d18e11b472d0aba2460cd6e641459c7c43136395760e06c97daa
|
7
|
+
data.tar.gz: c758d9dfabd28aa45bed53da9deadb18ae942246c80ca267fa98e12765723a6ab40c821a57f29dccd9a95c5057bd3fb1bdc4dd89d804b4e95cc092bf03c6bed4
|
data/README.md
CHANGED
@@ -71,10 +71,25 @@ QboApi.log = true
|
|
71
71
|
```ruby
|
72
72
|
QboApi.logger = Rails.logger
|
73
73
|
```
|
74
|
-
- To run all
|
74
|
+
- To run all requests with unique [RequestIds](https://developer.intuit.com/hub/blog/2015/04/06/15346).
|
75
75
|
```ruby
|
76
76
|
QboApi.request_id = true
|
77
77
|
```
|
78
|
+
- To run individual requests with a RequestId then do something like this:
|
79
|
+
```ruby
|
80
|
+
resp = qbo_api.create(:bill, payload: bill_hash, params: { requestid: qbo_api.uuid })
|
81
|
+
# Works with .get, .create, .update, .query methods
|
82
|
+
```
|
83
|
+
- To run all requests with a [Minor version](https://developer.intuit.com/docs/0100_quickbooks_online/0200_dev_guides/accounting/minor_versions).
|
84
|
+
```ruby
|
85
|
+
QboApi.minor_version = 8
|
86
|
+
```
|
87
|
+
- To run individual requests with a minor version then do something like this:
|
88
|
+
```ruby
|
89
|
+
resp = qbo_api.get(:item, 8, params: { minorversion: 8 })
|
90
|
+
# Works with .get, .create, .update, .query methods
|
91
|
+
```
|
92
|
+
|
78
93
|
|
79
94
|
### Create
|
80
95
|
```ruby
|
data/lib/qbo_api.rb
CHANGED
@@ -50,24 +50,24 @@ class QboApi
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
def query(query)
|
53
|
+
def query(query, params: nil)
|
54
54
|
path = "#{realm_id}/query?query=#{CGI.escape(query)}"
|
55
55
|
entity = extract_entity_from_query(query, to_sym: true)
|
56
|
-
request(:get, entity: entity, path: path)
|
56
|
+
request(:get, entity: entity, path: path, params: params)
|
57
57
|
end
|
58
58
|
|
59
|
-
def get(entity, id)
|
59
|
+
def get(entity, id, params: nil)
|
60
60
|
path = "#{entity_path(entity)}/#{id}"
|
61
|
-
request(:get, entity: entity, path: path)
|
61
|
+
request(:get, entity: entity, path: path, params: params)
|
62
62
|
end
|
63
63
|
|
64
|
-
def create(entity, payload:)
|
65
|
-
request(:post, entity: entity, path: entity_path(entity), payload: payload)
|
64
|
+
def create(entity, payload:, params: nil)
|
65
|
+
request(:post, entity: entity, path: entity_path(entity), payload: payload, params: params)
|
66
66
|
end
|
67
67
|
|
68
|
-
def update(entity, id:, payload:)
|
68
|
+
def update(entity, id:, payload:, params: nil)
|
69
69
|
payload.merge!(set_update(entity, id))
|
70
|
-
request(:post, entity: entity, path: entity_path(entity), payload: payload)
|
70
|
+
request(:post, entity: entity, path: entity_path(entity), payload: payload, params: params)
|
71
71
|
end
|
72
72
|
|
73
73
|
def delete(entity, id:)
|
@@ -109,13 +109,14 @@ class QboApi
|
|
109
109
|
end while (results ? results.size == max : false)
|
110
110
|
end
|
111
111
|
|
112
|
-
def request(method, path:, entity: nil, payload: nil)
|
112
|
+
def request(method, path:, entity: nil, payload: nil, params: nil)
|
113
113
|
raw_response = connection.send(method) do |req|
|
114
|
+
path = finalize_path(path, params: params)
|
114
115
|
case method
|
115
116
|
when :get, :delete
|
116
117
|
req.url path
|
117
118
|
when :post, :put
|
118
|
-
req.url
|
119
|
+
req.url path
|
119
120
|
req.body = JSON.generate(payload)
|
120
121
|
end
|
121
122
|
end
|
data/lib/qbo_api/util.rb
CHANGED
@@ -17,6 +17,13 @@ class QboApi
|
|
17
17
|
SecureRandom.uuid
|
18
18
|
end
|
19
19
|
|
20
|
+
def finalize_path(path, params: nil)
|
21
|
+
path = add_request_id_to(path)
|
22
|
+
path = add_minor_version_to(path)
|
23
|
+
path = add_params_to_path(path: path, params: params) if params
|
24
|
+
path
|
25
|
+
end
|
26
|
+
|
20
27
|
def add_request_id_to(path)
|
21
28
|
if QboApi.request_id
|
22
29
|
add_params_to_path(path: path, params: { "requestid" => uuid })
|
@@ -25,6 +32,14 @@ class QboApi
|
|
25
32
|
end
|
26
33
|
end
|
27
34
|
|
35
|
+
def add_minor_version_to(path)
|
36
|
+
if minor_version = QboApi.minor_version
|
37
|
+
add_params_to_path(path: path, params: { "minorversion" => minor_version })
|
38
|
+
else
|
39
|
+
path
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
28
43
|
def add_params_to_path(path:, params:)
|
29
44
|
uri = URI.parse(path)
|
30
45
|
params.each do |p|
|
data/lib/qbo_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qbo_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Pelczarski
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|