qbo_api 2.0.1 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 922f5a2dd0bb1020d9366c1a993686aa5febdb50e54a5b4c2a6160e572612def
4
- data.tar.gz: '032848b350e352d8edaf376cd49b41fbaae20bccf902473d775e90c513fc0ff5'
3
+ metadata.gz: bdae2e1e7049a7b71c286a5e3b36056a100c89c8fad4a85690b174457f9b1072
4
+ data.tar.gz: 36baaf4f27090e11b630a620c0b08fe2f531ccd25436a7ea4d5f4156f2d53c12
5
5
  SHA512:
6
- metadata.gz: c4f17dcf8f2fe0680c34dbb8cf9c864d7d42887f291a968023e1538902a8460cc13d968f669777b53efbc21000d1db44b6e78d21ad8619514dd62c7c0375ba10
7
- data.tar.gz: f2d7a86d02a465e6cc9ce8de0110c250c0e500a5d02b7e0cbc402e3cae37ae11832592ecef08d6c58de8735fd0081fbc8adae277efff3698416fc40da4d02274
6
+ metadata.gz: c7402792bd0691b386469c65543c729799a5aedd150a4a06e726c50d382cd7342a4215676cbb13b20898f93f1501525c03ea8481627003fd311d6332d828c03a
7
+ data.tar.gz: f3d4d4ba01db6d69dfccb22c5f4225d0b68e91c5e591384516971154b837aa06b370f822a8dc20f5c859ace71fe4c033bec002b44224505773c208459f44a1f4
data/.env.test CHANGED
@@ -1,6 +1,2 @@
1
- export QBO_API_CONSUMER_KEY=
2
- export QBO_API_CONSUMER_SECRET=
3
1
  export QBO_API_ACCESS_TOKEN=
4
- export QBO_API_ACCESS_TOKEN_SECRET=
5
- export QBO_API_OAUTH2_ACCESS_TOKEN=
6
2
  export QBO_API_COMPANY_ID=12345
data/README.md CHANGED
@@ -206,6 +206,12 @@ api.all(:clients).to_a
206
206
  p response['Id'] # => 1
207
207
  ```
208
208
 
209
+
210
+ ### Email a transaction entity
211
+ ```ruby
212
+ api.send_invoice(invoice_id: 1, email_address: 'billy@joe.com')
213
+ ```
214
+
209
215
  ### Uploading an attachment
210
216
  ```ruby
211
217
  payload = {"AttachableRef":
@@ -37,14 +37,17 @@ class QboApi
37
37
  }
38
38
  end
39
39
 
40
- def request(method, path:, entity: nil, payload: nil, params: nil)
41
- raw_response = raw_request(method, conn: connection, path: path, params: params, payload: payload)
40
+ def request(method, path:, entity: nil, payload: nil, params: nil, headers: nil)
41
+ raw_response = raw_request(method, conn: connection, path: path, params: params, payload: payload, headers: headers)
42
42
  response(raw_response, entity: entity)
43
43
  end
44
44
 
45
- def raw_request(method, conn:, path:, payload: nil, params: nil)
45
+ def raw_request(method, conn:, path:, payload: nil, params: nil, headers: nil)
46
46
  path = finalize_path(path, method: method, params: params)
47
+
47
48
  conn.public_send(method) do |req|
49
+ req.headers = headers if headers
50
+
48
51
  case method
49
52
  when :get, :delete
50
53
  req.url path
@@ -16,5 +16,20 @@ class QboApi
16
16
  path = add_params_to_path(path: path, params: params) if params
17
17
  request(:get, path: path)
18
18
  end
19
+
20
+ def deliver(entity, entity_id:, email_address: nil)
21
+ valid_entities = %i(invoice estimate purchaseorder creditmemo salesreceipt refundreceipt)
22
+ unless valid_entities.include?(entity.to_sym)
23
+ raise ArgumentError, "Invalid entity type '#{entity}'. Must be one of: #{valid_entities.join(', ')}"
24
+ end
25
+
26
+ path = "#{realm_id}/#{entity}/#{entity_id}/send"
27
+ unless email_address.nil?
28
+ params = { minorversion: 63, sendTo: email_address }
29
+ path = add_params_to_path(path: path, params: params)
30
+ end
31
+ headers = { 'Content-Type' => 'application/octet-stream' }
32
+ request(:post, path: path, headers: headers)
33
+ end
19
34
  end
20
35
  end
@@ -1,3 +1,3 @@
1
1
  class QboApi
2
- VERSION = "2.0.1"
2
+ VERSION = "2.1.0"
3
3
  end
data/qbo_api.gemspec CHANGED
@@ -22,12 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
24
  spec.add_development_dependency 'webmock'
25
- spec.add_development_dependency 'rexml'
26
- spec.add_development_dependency 'simple_oauth'
27
25
  spec.add_development_dependency 'dotenv'
28
26
  spec.add_development_dependency 'vcr'
29
27
  spec.add_development_dependency 'amazing_print'
30
- spec.add_runtime_dependency 'faraday'
28
+ spec.add_runtime_dependency 'faraday', '~> 1.10.0'
31
29
  spec.add_runtime_dependency 'faraday_middleware'
32
30
  spec.add_runtime_dependency 'faraday-detailed_logger'
33
31
  spec.add_runtime_dependency 'nokogiri'
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: 2.0.1
4
+ version: 2.1.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: 2021-10-02 00:00:00.000000000 Z
11
+ date: 2022-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,34 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rexml
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: simple_oauth
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: dotenv
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -140,16 +112,16 @@ dependencies:
140
112
  name: faraday
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
- - - ">="
115
+ - - "~>"
144
116
  - !ruby/object:Gem::Version
145
- version: '0'
117
+ version: 1.10.0
146
118
  type: :runtime
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
- - - ">="
122
+ - - "~>"
151
123
  - !ruby/object:Gem::Version
152
- version: '0'
124
+ version: 1.10.0
153
125
  - !ruby/object:Gem::Dependency
154
126
  name: faraday_middleware
155
127
  requirement: !ruby/object:Gem::Requirement
@@ -247,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
219
  - !ruby/object:Gem::Version
248
220
  version: '0'
249
221
  requirements: []
250
- rubygems_version: 3.0.3
222
+ rubygems_version: 3.2.22
251
223
  signing_key:
252
224
  specification_version: 4
253
225
  summary: Ruby JSON-only client for QuickBooks Online API v3. Built on top of the Faraday