quickbooks-ruby 1.0.1 → 2.0.7

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/quickbooks/model/account.rb +0 -1
  3. data/lib/quickbooks/model/account_based_expense_line_detail.rb +1 -0
  4. data/lib/quickbooks/model/base_model.rb +1 -0
  5. data/lib/quickbooks/model/bill.rb +2 -0
  6. data/lib/quickbooks/model/bill_line_item.rb +2 -0
  7. data/lib/quickbooks/model/customer.rb +6 -3
  8. data/lib/quickbooks/model/customer_type.rb +15 -0
  9. data/lib/quickbooks/model/invoice.rb +10 -2
  10. data/lib/quickbooks/model/item.rb +2 -4
  11. data/lib/quickbooks/model/item_based_expense_line_detail.rb +1 -0
  12. data/lib/quickbooks/model/preferences.rb +23 -5
  13. data/lib/quickbooks/model/purchase_change.rb +7 -0
  14. data/lib/quickbooks/model/purchase_line_item.rb +1 -0
  15. data/lib/quickbooks/model/purchase_order.rb +2 -1
  16. data/lib/quickbooks/model/report.rb +12 -1
  17. data/lib/quickbooks/model/sales_item_line_detail.rb +1 -0
  18. data/lib/quickbooks/model/sales_receipt.rb +1 -0
  19. data/lib/quickbooks/model/transaction_tax_detail.rb +1 -1
  20. data/lib/quickbooks/model/vendor.rb +1 -0
  21. data/lib/quickbooks/model/vendor_credit.rb +2 -0
  22. data/lib/quickbooks/service/access_token.rb +19 -18
  23. data/lib/quickbooks/service/account.rb +0 -5
  24. data/lib/quickbooks/service/base_service.rb +112 -82
  25. data/lib/quickbooks/service/credit_memo.rb +6 -0
  26. data/lib/quickbooks/service/custom_field.rb +20 -0
  27. data/lib/quickbooks/service/customer.rb +1 -11
  28. data/lib/quickbooks/service/customer_type.rb +20 -0
  29. data/lib/quickbooks/service/invoice.rb +1 -10
  30. data/lib/quickbooks/service/item.rb +1 -11
  31. data/lib/quickbooks/service/payment.rb +6 -0
  32. data/lib/quickbooks/service/preferences.rb +0 -5
  33. data/lib/quickbooks/service/purchase_change.rb +16 -0
  34. data/lib/quickbooks/service/purchase_order.rb +16 -0
  35. data/lib/quickbooks/service/refund_receipt.rb +6 -0
  36. data/lib/quickbooks/service/responses/oauth_http_response.rb +1 -5
  37. data/lib/quickbooks/service/sales_receipt.rb +1 -1
  38. data/lib/quickbooks/service/service_crud.rb +4 -1
  39. data/lib/quickbooks/service/service_crud_json.rb +1 -1
  40. data/lib/quickbooks/service/upload.rb +1 -5
  41. data/lib/quickbooks/util/logging.rb +16 -2
  42. data/lib/quickbooks/util/multipart.rb +0 -72
  43. data/lib/quickbooks/util/query_builder.rb +10 -5
  44. data/lib/quickbooks/version.rb +1 -1
  45. data/lib/quickbooks-ruby.rb +45 -19
  46. metadata +92 -42
  47. data/lib/quickbooks/faraday/middleware/gzip.rb +0 -72
  48. data/lib/quickbooks/service/responses/oauth1_http_response.rb +0 -42
@@ -1,78 +1,6 @@
1
1
  module OauthMultipart
2
2
  end
3
3
 
4
- require "oauth"
5
-
6
- OAuth::Consumer.class_eval do
7
- def create_http_request(http_method, path, *arguments)
8
- http_method = http_method.to_sym
9
-
10
- if [:post, :put].include?(http_method)
11
- data = arguments.shift
12
- end
13
-
14
- # if the base site contains a path, add it now
15
- uri = URI.parse(site)
16
- path = uri.path + path if uri.path
17
-
18
- headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
19
-
20
- case http_method
21
- when :post
22
- request = Net::HTTP::Post.new(path,headers)
23
- request["Content-Length"] = '0' # Default to 0
24
- when :put
25
- request = Net::HTTP::Put.new(path,headers)
26
- request["Content-Length"] = '0' # Default to 0
27
- when :get
28
- request = Net::HTTP::Get.new(path,headers)
29
- when :delete
30
- request = Net::HTTP::Delete.new(path,headers)
31
-
32
- when :head
33
- request = Net::HTTP::Head.new(path,headers)
34
- when :multipart_post
35
- request = Net::HTTP::Post::Multipart.new(path, headers)
36
- else
37
- raise ArgumentError, "Don't know how to handle http_method: :#{http_method.to_s}"
38
- end
39
-
40
- if data.is_a?(Hash)
41
- form_data = {}
42
- data.each {|k,v| form_data[k.to_s] = v if !v.nil?}
43
- request.set_form_data(form_data)
44
- elsif data
45
- if data.respond_to?(:read)
46
- request.body_stream = data
47
- if data.respond_to?(:length)
48
- request["Content-Length"] = data.length.to_s
49
- elsif data.respond_to?(:stat) && data.stat.respond_to?(:size)
50
- request["Content-Length"] = data.stat.size.to_s
51
- else
52
- raise ArgumentError, "Don't know how to send a body_stream that doesn't respond to .length or .stat.size"
53
- end
54
- else
55
- request.body = data.to_s
56
- request["Content-Length"] = request.body.length.to_s
57
- end
58
- end
59
-
60
- request
61
-
62
- end
63
- end
64
-
65
- OAuth::AccessToken.class_eval do
66
-
67
- def post_with_multipart(*args)
68
- multipart_post *args
69
- end
70
-
71
- def multipart_post(*args)
72
- request(:multipart_post, *args)
73
- end
74
- end
75
-
76
4
  OAuth2::AccessToken.class_eval do
77
5
 
78
6
  def post_with_multipart(*args)
@@ -10,26 +10,31 @@ module Quickbooks
10
10
  end
11
11
 
12
12
  def clause(field, operator, value)
13
+ # replace with an escaped backslash
14
+ escape_single_quotes = -> field { field.to_s.gsub("'", "\\\\'") }
15
+
13
16
  value = case value
14
17
  when DateTime, Time
15
18
  value.iso8601
16
19
  when Date
17
20
  value.strftime('%Y-%m-%d')
18
21
  when Array
19
- value = value.map{|v| v.to_s.gsub("'", "\\\\'") }
22
+ value = value.map(&escape_single_quotes)
23
+ when true, false
24
+ value
20
25
  else
21
- # escape single quotes with an escaped backslash
22
- value = value.gsub("'", "\\\\'")
26
+ value = escape_single_quotes.call(value)
23
27
  end
24
28
 
25
29
  if operator.downcase == 'in' && value.is_a?(Array)
26
- value = value.map{|v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}"}
30
+ value = value.map { |v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}" }
27
31
  "#{field} #{operator} (#{value.join(', ')})"
32
+ elsif value == true || value == false
33
+ "#{field} #{operator} #{value}"
28
34
  else
29
35
  "#{field} #{operator} #{VALUE_QUOTE}#{value}#{VALUE_QUOTE}"
30
36
  end
31
37
  end
32
-
33
38
  end
34
39
  end
35
40
  end
@@ -1,5 +1,5 @@
1
1
  module Quickbooks
2
2
 
3
- VERSION = "1.0.1"
3
+ VERSION = "2.0.7"
4
4
 
5
5
  end
@@ -6,20 +6,19 @@ require 'cgi'
6
6
  require 'uri'
7
7
  require 'date'
8
8
  require 'forwardable'
9
- require 'oauth'
10
9
  require 'oauth2'
11
10
  require 'net/http/post/multipart'
11
+ require 'faraday/multipart'
12
+ require 'faraday/gzip'
12
13
  require 'quickbooks/util/collection'
13
14
  require 'quickbooks/util/logging'
14
15
  require 'quickbooks/util/http_encoding_helper'
15
16
  require 'quickbooks/util/name_entity'
16
17
  require 'quickbooks/util/query_builder'
17
- require 'quickbooks/faraday/middleware/gzip'
18
18
 
19
19
  #== OAuth Responses
20
20
  require 'quickbooks/service/responses/oauth_http_response'
21
21
  require 'quickbooks/service/responses/methods'
22
- require 'quickbooks/service/responses/oauth1_http_response'
23
22
  require 'quickbooks/service/responses/oauth2_http_response'
24
23
 
25
24
  #== Models
@@ -77,6 +76,7 @@ require 'quickbooks/model/invoice_line_item'
77
76
  require 'quickbooks/model/invoice_group_line_detail'
78
77
  require 'quickbooks/model/company_info'
79
78
  require 'quickbooks/model/company_currency'
79
+ require 'quickbooks/model/customer_type'
80
80
  require 'quickbooks/model/customer'
81
81
  require 'quickbooks/model/delivery_info'
82
82
  require 'quickbooks/model/sales_receipt'
@@ -125,6 +125,7 @@ require 'quickbooks/model/item_change'
125
125
  require 'quickbooks/model/report'
126
126
  require 'quickbooks/model/credit_memo_change'
127
127
  require 'quickbooks/model/payment_change'
128
+ require 'quickbooks/model/purchase_change'
128
129
  require 'quickbooks/model/transfer'
129
130
  require 'quickbooks/model/change_data_capture'
130
131
  require 'quickbooks/model/refund_receipt_change'
@@ -139,6 +140,8 @@ require 'quickbooks/service/class'
139
140
  require 'quickbooks/service/attachable'
140
141
  require 'quickbooks/service/company_info'
141
142
  require 'quickbooks/service/company_currency'
143
+ require 'quickbooks/service/customer_type'
144
+ require 'quickbooks/service/custom_field'
142
145
  require 'quickbooks/service/customer'
143
146
  require 'quickbooks/service/department'
144
147
  require 'quickbooks/service/invoice'
@@ -180,16 +183,16 @@ require 'quickbooks/service/item_change'
180
183
  require 'quickbooks/service/reports'
181
184
  require 'quickbooks/service/credit_memo_change'
182
185
  require 'quickbooks/service/payment_change'
186
+ require 'quickbooks/service/purchase_change'
183
187
  require 'quickbooks/service/transfer'
184
188
  require 'quickbooks/service/change_data_capture'
185
189
  require 'quickbooks/service/refund_receipt_change'
186
190
 
187
- # Register Faraday Middleware
188
- Faraday::Middleware.register_middleware :gzip => lambda { Gzip }
189
-
190
191
  module Quickbooks
191
192
  @@sandbox_mode = false
192
193
  @@logger = nil
194
+ @@minorversion = 47
195
+ @@http_adapter = :net_http
193
196
 
194
197
  class << self
195
198
  def sandbox_mode
@@ -200,6 +203,14 @@ module Quickbooks
200
203
  @@sandbox_mode = sandbox_mode
201
204
  end
202
205
 
206
+ def minorversion=(v)
207
+ @@minorversion = v
208
+ end
209
+
210
+ def minorversion
211
+ @@minorversion
212
+ end
213
+
203
214
  def logger
204
215
  @@logger ||= ::Logger.new($stdout) # TODO: replace with a real log file
205
216
  end
@@ -208,30 +219,50 @@ module Quickbooks
208
219
  @@logger = logger
209
220
  end
210
221
 
222
+ def http_adapter
223
+ @@http_adapter
224
+ end
225
+
226
+ def http_adapter=(adapter)
227
+ @@http_adapter = adapter
228
+ end
229
+
211
230
  # set logging on or off
212
- attr_writer :log, :log_xml_pretty_print
231
+ attr_writer :log, :log_xml_pretty_print, :condense_logs
213
232
 
214
233
  # Returns whether to log. Defaults to 'false'.
215
234
  def log?
216
235
  @log ||= false
217
236
  end
218
237
 
238
+ # Returns whether to limit log lines
239
+ def condense_logs?
240
+ @condense_logs ||= false
241
+ end
242
+
219
243
  # pretty printing the xml in the logs is "on" by default
220
244
  def log_xml_pretty_print?
221
245
  defined?(@log_xml_pretty_print) ? @log_xml_pretty_print : true
222
246
  end
223
247
 
224
248
  def log(msg)
225
- if log?
226
- logger.info(msg)
227
- logger.flush if logger.respond_to?(:flush)
228
- end
249
+ logger.info(msg)
250
+ logger.flush if logger.respond_to?(:flush)
229
251
  end
230
252
  end # << self
231
253
 
232
254
  class Error < StandardError; end
233
255
  class InvalidModelException < Error; end
234
- class AuthorizationFailure < Error; end
256
+ class AuthorizationFailure < Error
257
+ attr_accessor :code, :detail, :type
258
+
259
+ def initialize(error_hash = {})
260
+ @code = error_hash[:code]
261
+ @detail = error_hash[:detail]
262
+ @type = error_hash[:type]
263
+ super(error_hash[:message])
264
+ end
265
+ end
235
266
  class Forbidden < Error; end
236
267
  class NotFound < Error; end
237
268
  class RequestTooLarge < Error; end
@@ -239,9 +270,10 @@ module Quickbooks
239
270
  class TooManyRequests < Error; end
240
271
  class ServiceUnavailable < Error; end
241
272
  class MissingRealmError < Error; end
273
+ class UnsupportedOperation < Error; end
242
274
 
243
275
  class IntuitRequestException < Error
244
- attr_accessor :message, :code, :detail, :type, :request_xml, :request_json
276
+ attr_accessor :message, :code, :detail, :element, :type, :intuit_tid, :request_xml, :request_json
245
277
 
246
278
  def initialize(msg)
247
279
  self.message = msg
@@ -249,10 +281,4 @@ module Quickbooks
249
281
  end
250
282
  end
251
283
 
252
- class InvalidOauthAccessTokenObject < StandardError
253
- def initialize(access_token)
254
- super("Expected access token to be an instance of OAuth::AccessToken or OAuth2::AccessToken, got #{access_token.class}.")
255
- end
256
- end
257
-
258
284
  end
metadata CHANGED
@@ -1,59 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickbooks-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Caughlan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-05 00:00:00.000000000 Z
11
+ date: 2025-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: oauth
14
+ name: oauth2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.7
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.7
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: oauth2
28
+ name: roxml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: '4.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: '4.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: roxml
42
+ name: activemodel
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
- version: 4.0.0
47
+ version: '4.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
- version: 4.0.0
54
+ version: '4.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: nokogiri
56
+ name: net-http-persistent
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: activemodel
70
+ name: nokogiri
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -94,62 +94,110 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: faraday
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "<"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday-multipart
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.4
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '1.0'
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 1.0.4
131
+ - !ruby/object:Gem::Dependency
132
+ name: faraday-gzip
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '1.0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '1.0'
97
145
  - !ruby/object:Gem::Dependency
98
146
  name: rake
99
147
  requirement: !ruby/object:Gem::Requirement
100
148
  requirements:
101
- - - '='
149
+ - - ">="
102
150
  - !ruby/object:Gem::Version
103
- version: 10.1.0
151
+ version: '0'
104
152
  type: :development
105
153
  prerelease: false
106
154
  version_requirements: !ruby/object:Gem::Requirement
107
155
  requirements:
108
- - - '='
156
+ - - ">="
109
157
  - !ruby/object:Gem::Version
110
- version: 10.1.0
158
+ version: '0'
111
159
  - !ruby/object:Gem::Dependency
112
160
  name: simplecov
113
161
  requirement: !ruby/object:Gem::Requirement
114
162
  requirements:
115
- - - '='
163
+ - - ">="
116
164
  - !ruby/object:Gem::Version
117
- version: 0.7.1
165
+ version: '0'
118
166
  type: :development
119
167
  prerelease: false
120
168
  version_requirements: !ruby/object:Gem::Requirement
121
169
  requirements:
122
- - - '='
170
+ - - ">="
123
171
  - !ruby/object:Gem::Version
124
- version: 0.7.1
172
+ version: '0'
125
173
  - !ruby/object:Gem::Dependency
126
174
  name: rr
127
175
  requirement: !ruby/object:Gem::Requirement
128
176
  requirements:
129
- - - "~>"
177
+ - - ">="
130
178
  - !ruby/object:Gem::Version
131
- version: 1.0.2
179
+ version: '0'
132
180
  type: :development
133
181
  prerelease: false
134
182
  version_requirements: !ruby/object:Gem::Requirement
135
183
  requirements:
136
- - - "~>"
184
+ - - ">="
137
185
  - !ruby/object:Gem::Version
138
- version: 1.0.2
186
+ version: '0'
139
187
  - !ruby/object:Gem::Dependency
140
188
  name: rspec
141
189
  requirement: !ruby/object:Gem::Requirement
142
190
  requirements:
143
- - - '='
191
+ - - ">="
144
192
  - !ruby/object:Gem::Version
145
- version: 2.14.1
193
+ version: '0'
146
194
  type: :development
147
195
  prerelease: false
148
196
  version_requirements: !ruby/object:Gem::Requirement
149
197
  requirements:
150
- - - '='
198
+ - - ">="
151
199
  - !ruby/object:Gem::Version
152
- version: 2.14.1
200
+ version: '0'
153
201
  - !ruby/object:Gem::Dependency
154
202
  name: webmock
155
203
  requirement: !ruby/object:Gem::Requirement
@@ -168,16 +216,16 @@ dependencies:
168
216
  name: dotenv
169
217
  requirement: !ruby/object:Gem::Requirement
170
218
  requirements:
171
- - - '='
219
+ - - ">="
172
220
  - !ruby/object:Gem::Version
173
- version: 2.2.1
221
+ version: '0'
174
222
  type: :development
175
223
  prerelease: false
176
224
  version_requirements: !ruby/object:Gem::Requirement
177
225
  requirements:
178
- - - '='
226
+ - - ">="
179
227
  - !ruby/object:Gem::Version
180
- version: 2.2.1
228
+ version: '0'
181
229
  description: QBO V3 REST API to Quickbooks Online
182
230
  email: toolbag@gmail.com
183
231
  executables: []
@@ -185,7 +233,6 @@ extensions: []
185
233
  extra_rdoc_files: []
186
234
  files:
187
235
  - lib/quickbooks-ruby.rb
188
- - lib/quickbooks/faraday/middleware/gzip.rb
189
236
  - lib/quickbooks/model/access_token_response.rb
190
237
  - lib/quickbooks/model/account.rb
191
238
  - lib/quickbooks/model/account_based_expense_line_detail.rb
@@ -216,6 +263,7 @@ files:
216
263
  - lib/quickbooks/model/custom_field.rb
217
264
  - lib/quickbooks/model/customer.rb
218
265
  - lib/quickbooks/model/customer_change.rb
266
+ - lib/quickbooks/model/customer_type.rb
219
267
  - lib/quickbooks/model/definition.rb
220
268
  - lib/quickbooks/model/delivery_info.rb
221
269
  - lib/quickbooks/model/department.rb
@@ -262,6 +310,7 @@ files:
262
310
  - lib/quickbooks/model/physical_address.rb
263
311
  - lib/quickbooks/model/preferences.rb
264
312
  - lib/quickbooks/model/purchase.rb
313
+ - lib/quickbooks/model/purchase_change.rb
265
314
  - lib/quickbooks/model/purchase_line_item.rb
266
315
  - lib/quickbooks/model/purchase_order.rb
267
316
  - lib/quickbooks/model/purchase_tax_rate_list.rb
@@ -307,8 +356,10 @@ files:
307
356
  - lib/quickbooks/service/company_info.rb
308
357
  - lib/quickbooks/service/credit_memo.rb
309
358
  - lib/quickbooks/service/credit_memo_change.rb
359
+ - lib/quickbooks/service/custom_field.rb
310
360
  - lib/quickbooks/service/customer.rb
311
361
  - lib/quickbooks/service/customer_change.rb
362
+ - lib/quickbooks/service/customer_type.rb
312
363
  - lib/quickbooks/service/department.rb
313
364
  - lib/quickbooks/service/deposit.rb
314
365
  - lib/quickbooks/service/employee.rb
@@ -324,12 +375,12 @@ files:
324
375
  - lib/quickbooks/service/payment_method.rb
325
376
  - lib/quickbooks/service/preferences.rb
326
377
  - lib/quickbooks/service/purchase.rb
378
+ - lib/quickbooks/service/purchase_change.rb
327
379
  - lib/quickbooks/service/purchase_order.rb
328
380
  - lib/quickbooks/service/refund_receipt.rb
329
381
  - lib/quickbooks/service/refund_receipt_change.rb
330
382
  - lib/quickbooks/service/reports.rb
331
383
  - lib/quickbooks/service/responses/methods.rb
332
- - lib/quickbooks/service/responses/oauth1_http_response.rb
333
384
  - lib/quickbooks/service/responses/oauth2_http_response.rb
334
385
  - lib/quickbooks/service/responses/oauth_http_response.rb
335
386
  - lib/quickbooks/service/sales_receipt.rb
@@ -365,15 +416,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
365
416
  requirements:
366
417
  - - ">="
367
418
  - !ruby/object:Gem::Version
368
- version: '0'
419
+ version: '2.6'
369
420
  required_rubygems_version: !ruby/object:Gem::Requirement
370
421
  requirements:
371
422
  - - ">="
372
423
  - !ruby/object:Gem::Version
373
424
  version: '0'
374
425
  requirements: []
375
- rubyforge_project:
376
- rubygems_version: 2.7.8
426
+ rubygems_version: 3.1.6
377
427
  signing_key:
378
428
  specification_version: 4
379
429
  summary: REST API to Quickbooks Online
@@ -1,72 +0,0 @@
1
- # https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/gzip.rb
2
-
3
- require 'faraday'
4
-
5
- # Middleware to automatically decompress response bodies. If the
6
- # "Accept-Encoding" header wasn't set in the request, this sets it to
7
- # "gzip,deflate" and appropriately handles the compressed response from the
8
- # server. This resembles what Ruby 1.9+ does internally in Net::HTTP#get.
9
- #
10
- # This middleware is NOT necessary when these adapters are used:
11
- # - net_http on Ruby 1.9+
12
- # - net_http_persistent on Ruby 2.0+
13
- # - em_http
14
- class Gzip < Faraday::Middleware
15
- dependency 'zlib'
16
-
17
- ACCEPT_ENCODING = 'Accept-Encoding'.freeze
18
- CONTENT_ENCODING = 'Content-Encoding'.freeze
19
- CONTENT_LENGTH = 'Content-Length'.freeze
20
- SUPPORTED_ENCODINGS = 'gzip,deflate,br'.freeze
21
- RUBY_ENCODING = '1.9'.respond_to?(:force_encoding)
22
-
23
- def call(env)
24
- env[:request_headers][ACCEPT_ENCODING] ||= SUPPORTED_ENCODINGS
25
- @app.call(env).on_complete do |response_env|
26
- case response_env[:response_headers][CONTENT_ENCODING]
27
- when 'gzip'
28
- reset_body(response_env, &method(:uncompress_gzip))
29
- when 'deflate'
30
- reset_body(response_env, &method(:inflate))
31
- when 'br'
32
- reset_body(response_env, &method(:brotli_inflate))
33
- end
34
- end
35
- end
36
-
37
- def reset_body(env)
38
- env[:body] = yield(env[:body])
39
- env[:response_headers].delete(CONTENT_ENCODING)
40
- env[:response_headers][CONTENT_LENGTH] = env[:body].length
41
- end
42
-
43
- def uncompress_gzip(body)
44
- io = StringIO.new(body)
45
- gzip_reader = if RUBY_ENCODING
46
- Zlib::GzipReader.new(io, :encoding => 'ASCII-8BIT')
47
- else
48
- Zlib::GzipReader.new(io)
49
- end
50
- gzip_reader.read
51
- end
52
-
53
- def inflate(body)
54
- # Inflate as a DEFLATE (RFC 1950+RFC 1951) stream
55
- Zlib::Inflate.inflate(body)
56
- rescue Zlib::DataError
57
- # Fall back to inflating as a "raw" deflate stream which
58
- # Microsoft servers return
59
- inflate = Zlib::Inflate.new(-Zlib::MAX_WBITS)
60
- begin
61
- inflate.inflate(body)
62
- ensure
63
- inflate.close
64
- end
65
- end
66
-
67
- def brotli_inflate(body)
68
- self.class.dependency 'brotli'
69
-
70
- Brotli.inflate(body)
71
- end
72
- end
@@ -1,42 +0,0 @@
1
- module Quickbooks
2
- module Service
3
- module Responses
4
-
5
- class OAuth1HttpResponse < OAuthHttpResponse
6
-
7
- attr_accessor :real_response
8
-
9
- # net/http response
10
- def initialize(response)
11
- @real_response = response
12
- end
13
-
14
- def version
15
- 1
16
- end
17
-
18
- def code
19
- @real_response.code.to_i
20
- end
21
-
22
- def plain_body
23
- if @real_response.respond_to?(:plain_body)
24
- @real_response.plain_body
25
- else
26
- nil
27
- end
28
- end
29
-
30
- def headers
31
- if @real_response.respond_to?(:headers)
32
- @real_response.headers
33
- else
34
- nil
35
- end
36
- end
37
-
38
- end
39
-
40
- end
41
- end
42
- end