quickbooks-ruby 1.0.6 → 1.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.
- checksums.yaml +4 -4
- data/lib/quickbooks-ruby.rb +3 -0
- data/lib/quickbooks/faraday/middleware/gzip.rb +2 -0
- data/lib/quickbooks/model/bill.rb +1 -0
- data/lib/quickbooks/model/customer.rb +4 -1
- data/lib/quickbooks/model/customer_type.rb +15 -0
- data/lib/quickbooks/model/report.rb +1 -1
- data/lib/quickbooks/service/base_service.rb +28 -9
- data/lib/quickbooks/service/customer_type.rb +20 -0
- data/lib/quickbooks/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 594f8d68572ba0677e421dd9b6bd94b9dddc4cebca01fb3563acc274221d531e
|
4
|
+
data.tar.gz: 65094892047b057642b59afedd9575e4cfcac52535d65b909a4be964277eb8d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0df95bc28c87dafd0aca1b9e4242cd01093e075344dc63431a6456fcc6d87c8e9611c0359a176642d304a563591e53a4f74cc7318826211e8bec90618d10906b
|
7
|
+
data.tar.gz: 5b4a6a44deb549a9fa9f4931e9b9628f9ee9982bbc377356ade7daab6040a3a3ef5f9f30e9fd73957d9f8f2f0b8521f87a604bee4674dcee1dccb57b5dc21518
|
data/lib/quickbooks-ruby.rb
CHANGED
@@ -75,6 +75,7 @@ require 'quickbooks/model/invoice_line_item'
|
|
75
75
|
require 'quickbooks/model/invoice_group_line_detail'
|
76
76
|
require 'quickbooks/model/company_info'
|
77
77
|
require 'quickbooks/model/company_currency'
|
78
|
+
require 'quickbooks/model/customer_type'
|
78
79
|
require 'quickbooks/model/customer'
|
79
80
|
require 'quickbooks/model/delivery_info'
|
80
81
|
require 'quickbooks/model/sales_receipt'
|
@@ -137,6 +138,7 @@ require 'quickbooks/service/class'
|
|
137
138
|
require 'quickbooks/service/attachable'
|
138
139
|
require 'quickbooks/service/company_info'
|
139
140
|
require 'quickbooks/service/company_currency'
|
141
|
+
require 'quickbooks/service/customer_type'
|
140
142
|
require 'quickbooks/service/customer'
|
141
143
|
require 'quickbooks/service/department'
|
142
144
|
require 'quickbooks/service/invoice'
|
@@ -246,6 +248,7 @@ module Quickbooks
|
|
246
248
|
class TooManyRequests < Error; end
|
247
249
|
class ServiceUnavailable < Error; end
|
248
250
|
class MissingRealmError < Error; end
|
251
|
+
class UnsupportedOperation < Error; end
|
249
252
|
|
250
253
|
class IntuitRequestException < Error
|
251
254
|
attr_accessor :message, :code, :detail, :type, :intuit_tid, :request_xml, :request_json
|
@@ -23,6 +23,8 @@ class Gzip < Faraday::Middleware
|
|
23
23
|
def call(env)
|
24
24
|
env[:request_headers][ACCEPT_ENCODING] ||= SUPPORTED_ENCODINGS
|
25
25
|
@app.call(env).on_complete do |response_env|
|
26
|
+
break if response_env[:response_headers].nil?
|
27
|
+
|
26
28
|
case response_env[:response_headers][CONTENT_ENCODING]
|
27
29
|
when 'gzip'
|
28
30
|
reset_body(response_env, &method(:uncompress_gzip))
|
@@ -16,6 +16,7 @@ module Quickbooks
|
|
16
16
|
xml_accessor :department_ref, :from => 'DepartmentRef', :as => BaseReference
|
17
17
|
|
18
18
|
xml_accessor :line_items, :from => 'Line', :as => [BillLineItem]
|
19
|
+
xml_accessor :txn_tax_detail, :from => 'TxnTaxDetail', :as => TransactionTaxDetail
|
19
20
|
|
20
21
|
xml_accessor :private_note, :from => 'PrivateNote'
|
21
22
|
|
@@ -56,12 +56,15 @@ module Quickbooks
|
|
56
56
|
xml_accessor :notes, :from => 'Notes'
|
57
57
|
xml_accessor :currency_ref, :from => 'CurrencyRef', :as => BaseReference
|
58
58
|
xml_accessor :tax_exemption_reason_id, :from => 'TaxExemptionReasonId'
|
59
|
+
xml_accessor :primary_tax_identifier, :from => 'PrimaryTaxIdentifier'
|
60
|
+
xml_accessor :customer_type_ref, :from => 'CustomerTypeRef', :as => BaseReference
|
59
61
|
|
60
62
|
#== Validations
|
61
63
|
validate :names_cannot_contain_invalid_characters
|
62
64
|
validate :email_address_is_valid
|
63
65
|
|
64
|
-
reference_setters :parent_ref, :sales_term_ref, :payment_method_ref, :default_tax_code_ref, :currency_ref
|
66
|
+
reference_setters :parent_ref, :sales_term_ref, :payment_method_ref, :default_tax_code_ref, :currency_ref,
|
67
|
+
:customer_type_ref
|
65
68
|
|
66
69
|
def job?
|
67
70
|
job.to_s == 'true'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Quickbooks
|
2
|
+
module Model
|
3
|
+
class CustomerType < BaseModel
|
4
|
+
XML_COLLECTION_NODE = "CustomerType"
|
5
|
+
XML_NODE = "CustomerType"
|
6
|
+
REST_RESOURCE = 'customertype'
|
7
|
+
|
8
|
+
xml_accessor :id, :from => 'Id'
|
9
|
+
xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
|
10
|
+
xml_accessor :meta_data, :from => 'MetaData', :as => MetaData
|
11
|
+
xml_accessor :name, :from => 'Name'
|
12
|
+
xml_accessor :active?, :from => 'Active'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -38,7 +38,7 @@ module Quickbooks
|
|
38
38
|
value = el.attr('value')
|
39
39
|
|
40
40
|
next nil if value.blank?
|
41
|
-
next value if value.to_s.match(/^\d+$|^\d
|
41
|
+
next value if value.to_s.match(/^\d+$|^\d+\.\d+$|^-\d+|^-\d+\.\d+$|^\.\d+$/).nil?
|
42
42
|
BigDecimal(value)
|
43
43
|
end
|
44
44
|
end
|
@@ -9,6 +9,9 @@ module Quickbooks
|
|
9
9
|
attr_reader :base_uri
|
10
10
|
attr_reader :last_response_xml
|
11
11
|
attr_reader :last_response_intuit_tid
|
12
|
+
attr_accessor :before_request
|
13
|
+
attr_accessor :around_request
|
14
|
+
attr_accessor :after_request
|
12
15
|
|
13
16
|
XML_NS = %{xmlns="http://schema.intuit.com/finance/v3"}
|
14
17
|
HTTP_CONTENT_TYPE = 'application/xml'
|
@@ -17,6 +20,8 @@ module Quickbooks
|
|
17
20
|
BASE_DOMAIN = 'quickbooks.api.intuit.com'
|
18
21
|
SANDBOX_DOMAIN = 'sandbox-quickbooks.api.intuit.com'
|
19
22
|
|
23
|
+
RequestInfo = Struct.new(:url, :headers, :body, :method)
|
24
|
+
|
20
25
|
def initialize(attributes = {})
|
21
26
|
domain = Quickbooks.sandbox_mode ? SANDBOX_DOMAIN : BASE_DOMAIN
|
22
27
|
@base_uri = "https://#{domain}/v3/company"
|
@@ -247,17 +252,24 @@ module Quickbooks
|
|
247
252
|
log_request_body(body)
|
248
253
|
log "REQUEST HEADERS = #{headers.inspect}"
|
249
254
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
255
|
+
request_info = RequestInfo.new(url, headers, body, method)
|
256
|
+
before_request.call(request_info) if before_request
|
257
|
+
|
258
|
+
raw_response = with_around_request(request_info) do
|
259
|
+
case method
|
260
|
+
when :get
|
261
|
+
oauth_get(url, headers)
|
262
|
+
when :post
|
263
|
+
oauth_post(url, body, headers)
|
264
|
+
when :upload
|
265
|
+
oauth_post_with_multipart(url, body, headers)
|
266
|
+
else
|
267
|
+
raise "Do not know how to perform that HTTP operation"
|
268
|
+
end
|
259
269
|
end
|
260
270
|
|
271
|
+
after_request.call(request_info, raw_response.body) if after_request
|
272
|
+
|
261
273
|
response = Quickbooks::Service::Responses::OAuthHttpResponse.wrap(raw_response)
|
262
274
|
log "------ QUICKBOOKS-RUBY RESPONSE ------"
|
263
275
|
log "RESPONSE CODE = #{response.code}"
|
@@ -429,6 +441,13 @@ module Quickbooks
|
|
429
441
|
error
|
430
442
|
end
|
431
443
|
|
444
|
+
def with_around_request(request_info, &block)
|
445
|
+
if around_request
|
446
|
+
around_request.call(request_info, &block)
|
447
|
+
else
|
448
|
+
block.call
|
449
|
+
end
|
450
|
+
end
|
432
451
|
end
|
433
452
|
end
|
434
453
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Quickbooks
|
2
|
+
module Service
|
3
|
+
class CustomerType < BaseService
|
4
|
+
|
5
|
+
def delete(customer_type)
|
6
|
+
raise Quickbooks::UnsupportedOperation.new('Deleting CustomerType is not supported by Intuit')
|
7
|
+
end
|
8
|
+
|
9
|
+
def create(customer_type)
|
10
|
+
raise Quickbooks::UnsupportedOperation.new('Creating/updating CustomerType is not supported by Intuit')
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def model
|
16
|
+
Quickbooks::Model::CustomerType
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/quickbooks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quickbooks-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.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: 2020-
|
11
|
+
date: 2020-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -202,6 +202,7 @@ files:
|
|
202
202
|
- lib/quickbooks/model/custom_field.rb
|
203
203
|
- lib/quickbooks/model/customer.rb
|
204
204
|
- lib/quickbooks/model/customer_change.rb
|
205
|
+
- lib/quickbooks/model/customer_type.rb
|
205
206
|
- lib/quickbooks/model/definition.rb
|
206
207
|
- lib/quickbooks/model/delivery_info.rb
|
207
208
|
- lib/quickbooks/model/department.rb
|
@@ -295,6 +296,7 @@ files:
|
|
295
296
|
- lib/quickbooks/service/credit_memo_change.rb
|
296
297
|
- lib/quickbooks/service/customer.rb
|
297
298
|
- lib/quickbooks/service/customer_change.rb
|
299
|
+
- lib/quickbooks/service/customer_type.rb
|
298
300
|
- lib/quickbooks/service/department.rb
|
299
301
|
- lib/quickbooks/service/deposit.rb
|
300
302
|
- lib/quickbooks/service/employee.rb
|