quickbooks-ruby 1.0.6 → 1.0.11
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 +13 -0
- data/lib/quickbooks/faraday/middleware/gzip.rb +2 -0
- data/lib/quickbooks/model/account.rb +0 -1
- data/lib/quickbooks/model/bill.rb +1 -0
- data/lib/quickbooks/model/customer.rb +4 -3
- data/lib/quickbooks/model/customer_type.rb +15 -0
- data/lib/quickbooks/model/invoice.rb +0 -1
- data/lib/quickbooks/model/item.rb +2 -4
- data/lib/quickbooks/model/preferences.rb +0 -1
- data/lib/quickbooks/model/purchase_order.rb +0 -1
- data/lib/quickbooks/model/report.rb +1 -1
- data/lib/quickbooks/service/access_token.rb +2 -1
- data/lib/quickbooks/service/account.rb +0 -5
- data/lib/quickbooks/service/base_service.rb +33 -10
- data/lib/quickbooks/service/custom_field.rb +20 -0
- data/lib/quickbooks/service/customer.rb +1 -11
- data/lib/quickbooks/service/customer_type.rb +20 -0
- data/lib/quickbooks/service/invoice.rb +1 -10
- data/lib/quickbooks/service/item.rb +1 -11
- data/lib/quickbooks/service/preferences.rb +0 -5
- data/lib/quickbooks/service/service_crud_json.rb +1 -1
- data/lib/quickbooks/util/query_builder.rb +6 -5
- data/lib/quickbooks/version.rb +1 -1
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59f6b50352335b6f8142b4b2e6ab4f3057104998119ff634f436bbf64e5009d4
|
4
|
+
data.tar.gz: c6b0639561b040957fcef550fc6e117d0f3327f522c3ec8fc87edb622ef23523
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e27ca054b8ad9281542eebcfa83fdcc6ec7a3855b7afc54fe2bb62d0981de4b1ef840b6e77ba11c164f6092263d6aa3e752b7fe0e3fc79baa747cc559a0e07cc
|
7
|
+
data.tar.gz: 0b354dd455d03cf7625f9ac0fd8cae75e928aa52bc3e5edaf2ca5a4bea5b148cef9ef0122430c360bc1e14b6130cc57e30b84caaac7c13dd2293bac8fa0ba23d
|
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,8 @@ 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'
|
142
|
+
require 'quickbooks/service/custom_field'
|
140
143
|
require 'quickbooks/service/customer'
|
141
144
|
require 'quickbooks/service/department'
|
142
145
|
require 'quickbooks/service/invoice'
|
@@ -188,6 +191,7 @@ Faraday::Middleware.register_middleware :gzip => lambda { Gzip }
|
|
188
191
|
module Quickbooks
|
189
192
|
@@sandbox_mode = false
|
190
193
|
@@logger = nil
|
194
|
+
@@minorversion = 47
|
191
195
|
|
192
196
|
class << self
|
193
197
|
def sandbox_mode
|
@@ -198,6 +202,14 @@ module Quickbooks
|
|
198
202
|
@@sandbox_mode = sandbox_mode
|
199
203
|
end
|
200
204
|
|
205
|
+
def minorversion=(v)
|
206
|
+
@@minorversion = v
|
207
|
+
end
|
208
|
+
|
209
|
+
def minorversion
|
210
|
+
@@minorversion
|
211
|
+
end
|
212
|
+
|
201
213
|
def logger
|
202
214
|
@@logger ||= ::Logger.new($stdout) # TODO: replace with a real log file
|
203
215
|
end
|
@@ -246,6 +258,7 @@ module Quickbooks
|
|
246
258
|
class TooManyRequests < Error; end
|
247
259
|
class ServiceUnavailable < Error; end
|
248
260
|
class MissingRealmError < Error; end
|
261
|
+
class UnsupportedOperation < Error; end
|
249
262
|
|
250
263
|
class IntuitRequestException < Error
|
251
264
|
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
|
|
@@ -16,8 +16,6 @@ module Quickbooks
|
|
16
16
|
include NameEntity::Quality
|
17
17
|
include NameEntity::PermitAlterations
|
18
18
|
|
19
|
-
MINORVERSION = 33
|
20
|
-
|
21
19
|
xml_name XML_NODE
|
22
20
|
xml_accessor :id, :from => 'Id'
|
23
21
|
xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
|
@@ -56,12 +54,15 @@ module Quickbooks
|
|
56
54
|
xml_accessor :notes, :from => 'Notes'
|
57
55
|
xml_accessor :currency_ref, :from => 'CurrencyRef', :as => BaseReference
|
58
56
|
xml_accessor :tax_exemption_reason_id, :from => 'TaxExemptionReasonId'
|
57
|
+
xml_accessor :primary_tax_identifier, :from => 'PrimaryTaxIdentifier'
|
58
|
+
xml_accessor :customer_type_ref, :from => 'CustomerTypeRef', :as => BaseReference
|
59
59
|
|
60
60
|
#== Validations
|
61
61
|
validate :names_cannot_contain_invalid_characters
|
62
62
|
validate :email_address_is_valid
|
63
63
|
|
64
|
-
reference_setters :parent_ref, :sales_term_ref, :payment_method_ref, :default_tax_code_ref, :currency_ref
|
64
|
+
reference_setters :parent_ref, :sales_term_ref, :payment_method_ref, :default_tax_code_ref, :currency_ref,
|
65
|
+
:customer_type_ref
|
65
66
|
|
66
67
|
def job?
|
67
68
|
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
|
@@ -10,7 +10,6 @@ module Quickbooks
|
|
10
10
|
XML_COLLECTION_NODE = "Item"
|
11
11
|
XML_NODE = "Item"
|
12
12
|
REST_RESOURCE = 'item'
|
13
|
-
MINORVERSION = 33
|
14
13
|
|
15
14
|
INVENTORY_TYPE = 'Inventory'
|
16
15
|
NON_INVENTORY_TYPE = 'NonInventory'
|
@@ -31,6 +30,7 @@ module Quickbooks
|
|
31
30
|
xml_accessor :level, :from => 'Level', :as => Integer
|
32
31
|
xml_accessor :pref_vendor_ref, :from => 'PrefVendorRef', :as => BaseReference
|
33
32
|
xml_accessor :tax_classification_ref, :from => 'TaxClassificationRef', :as => BaseReference
|
33
|
+
xml_accessor :class_ref, :from => 'ClassRef', :as => BaseReference
|
34
34
|
|
35
35
|
# read-only
|
36
36
|
xml_accessor :fully_qualified_name, :from => 'FullyQualifiedName'
|
@@ -52,13 +52,11 @@ module Quickbooks
|
|
52
52
|
xml_accessor :inv_start_date, :from => 'InvStartDate', :as => Date
|
53
53
|
xml_accessor :custom_fields, :from => "CustomField", as: [CustomField]
|
54
54
|
xml_accessor :print_grouped_items?, :from => 'PrintGroupedItems'
|
55
|
-
|
56
|
-
|
57
55
|
xml_accessor :item_group_details, :from => 'ItemGroupDetail', :as => ItemGroupDetail
|
58
56
|
|
59
57
|
reference_setters :parent_ref, :income_account_ref, :expense_account_ref
|
60
58
|
reference_setters :asset_account_ref, :sales_tax_code_ref, :purchase_tax_code_ref
|
61
|
-
reference_setters :pref_vendor_ref, :tax_classification_ref
|
59
|
+
reference_setters :pref_vendor_ref, :tax_classification_ref, :class_ref
|
62
60
|
|
63
61
|
#== Validations
|
64
62
|
validates_length_of :name, :minimum => 1
|
@@ -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
|
@@ -23,7 +23,8 @@ module Quickbooks
|
|
23
23
|
def disconnect
|
24
24
|
conn = Faraday.new
|
25
25
|
conn.basic_auth oauth.client.id, oauth.client.secret
|
26
|
-
|
26
|
+
url = "#{DISCONNECT_URL}?minorversion=#{Quickbooks.minorversion}"
|
27
|
+
response = conn.post(url, token: oauth.refresh_token || oauth.token)
|
27
28
|
|
28
29
|
if response.success?
|
29
30
|
Quickbooks::Model::AccessTokenResponse.new(error_code: "0")
|
@@ -7,11 +7,6 @@ module Quickbooks
|
|
7
7
|
update(account, :sparse => true)
|
8
8
|
end
|
9
9
|
|
10
|
-
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
11
|
-
url = super(query, start_position, max_results, options)
|
12
|
-
"#{url}&minorversion=#{Quickbooks::Model::Account::MINORVERSION}"
|
13
|
-
end
|
14
|
-
|
15
10
|
private
|
16
11
|
|
17
12
|
def model
|
@@ -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"
|
@@ -224,6 +229,8 @@ module Quickbooks
|
|
224
229
|
body['file_metadata_0'] = param_part
|
225
230
|
end
|
226
231
|
|
232
|
+
url = add_query_string_to_url(url, {})
|
233
|
+
|
227
234
|
do_http(:upload, url, body, headers)
|
228
235
|
end
|
229
236
|
|
@@ -247,17 +254,24 @@ module Quickbooks
|
|
247
254
|
log_request_body(body)
|
248
255
|
log "REQUEST HEADERS = #{headers.inspect}"
|
249
256
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
257
|
+
request_info = RequestInfo.new(url, headers, body, method)
|
258
|
+
before_request.call(request_info) if before_request
|
259
|
+
|
260
|
+
raw_response = with_around_request(request_info) do
|
261
|
+
case method
|
262
|
+
when :get
|
263
|
+
oauth_get(url, headers)
|
264
|
+
when :post
|
265
|
+
oauth_post(url, body, headers)
|
266
|
+
when :upload
|
267
|
+
oauth_post_with_multipart(url, body, headers)
|
268
|
+
else
|
269
|
+
raise "Do not know how to perform that HTTP operation"
|
270
|
+
end
|
259
271
|
end
|
260
272
|
|
273
|
+
after_request.call(request_info, raw_response.body) if after_request
|
274
|
+
|
261
275
|
response = Quickbooks::Service::Responses::OAuthHttpResponse.wrap(raw_response)
|
262
276
|
log "------ QUICKBOOKS-RUBY RESPONSE ------"
|
263
277
|
log "RESPONSE CODE = #{response.code}"
|
@@ -280,7 +294,9 @@ module Quickbooks
|
|
280
294
|
@oauth.post_with_multipart(url, headers: headers, body: body, raise_errors: false)
|
281
295
|
end
|
282
296
|
|
283
|
-
def add_query_string_to_url(url, params)
|
297
|
+
def add_query_string_to_url(url, params = {})
|
298
|
+
params ||= {}
|
299
|
+
params['minorversion'] = Quickbooks.minorversion
|
284
300
|
if params.is_a?(Hash) && !params.empty?
|
285
301
|
keyvalues = params.collect { |k| "#{k.first}=#{k.last}" }.join("&")
|
286
302
|
delim = url.index("?") != nil ? "&" : "?"
|
@@ -429,6 +445,13 @@ module Quickbooks
|
|
429
445
|
error
|
430
446
|
end
|
431
447
|
|
448
|
+
def with_around_request(request_info, &block)
|
449
|
+
if around_request
|
450
|
+
around_request.call(request_info, &block)
|
451
|
+
else
|
452
|
+
block.call
|
453
|
+
end
|
454
|
+
end
|
432
455
|
end
|
433
456
|
end
|
434
457
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Quickbooks
|
2
|
+
module Service
|
3
|
+
class CustomField < 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::CustomField
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -7,21 +7,11 @@ module Quickbooks
|
|
7
7
|
update(customer, :sparse => true)
|
8
8
|
end
|
9
9
|
|
10
|
-
def url_for_resource(resource)
|
11
|
-
url = super(resource)
|
12
|
-
"#{url}?minorversion=#{Quickbooks::Model::Customer::MINORVERSION}"
|
13
|
-
end
|
14
|
-
|
15
10
|
def fetch_by_id(id, params = {})
|
16
|
-
url = "#{url_for_base}/customer/#{id}
|
11
|
+
url = "#{url_for_base}/customer/#{id}"
|
17
12
|
fetch_object(model, url, params)
|
18
13
|
end
|
19
14
|
|
20
|
-
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
21
|
-
url = super(query, start_position, max_results, options)
|
22
|
-
"#{url}&minorversion=#{Quickbooks::Model::Customer::MINORVERSION}"
|
23
|
-
end
|
24
|
-
|
25
15
|
private
|
26
16
|
|
27
17
|
def model
|
@@ -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
|
@@ -6,20 +6,11 @@ module Quickbooks
|
|
6
6
|
delete_by_query_string(invoice)
|
7
7
|
end
|
8
8
|
|
9
|
-
def url_for_resource(resource)
|
10
|
-
url = super(resource)
|
11
|
-
end
|
12
|
-
|
13
9
|
def fetch_by_id(id, params = {})
|
14
|
-
url = "#{url_for_base}/invoice/#{id}
|
10
|
+
url = "#{url_for_base}/invoice/#{id}"
|
15
11
|
fetch_object(model, url, params)
|
16
12
|
end
|
17
13
|
|
18
|
-
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
19
|
-
url = super(query, start_position, max_results, options)
|
20
|
-
"#{url}&minorversion=#{Quickbooks::Model::Invoice::MINORVERSION}"
|
21
|
-
end
|
22
|
-
|
23
14
|
def send(invoice, email_address=nil)
|
24
15
|
query = email_address.present? ? "?sendTo=#{email_address}" : ""
|
25
16
|
url = "#{url_for_resource(model::REST_RESOURCE)}/#{invoice.id}/send#{query}"
|
@@ -7,21 +7,11 @@ module Quickbooks
|
|
7
7
|
update(item, :sparse => true)
|
8
8
|
end
|
9
9
|
|
10
|
-
def url_for_resource(resource)
|
11
|
-
url = super(resource)
|
12
|
-
"#{url}?minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
|
13
|
-
end
|
14
|
-
|
15
10
|
def fetch_by_id(id, params = {})
|
16
|
-
url = "#{url_for_base}/item/#{id}
|
11
|
+
url = "#{url_for_base}/item/#{id}"
|
17
12
|
fetch_object(model, url, params)
|
18
13
|
end
|
19
14
|
|
20
|
-
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
21
|
-
url = super(query, start_position, max_results, options)
|
22
|
-
"#{url}&minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
|
23
|
-
end
|
24
|
-
|
25
15
|
private
|
26
16
|
|
27
17
|
def model
|
@@ -2,11 +2,6 @@ module Quickbooks
|
|
2
2
|
module Service
|
3
3
|
class Preferences < BaseService
|
4
4
|
|
5
|
-
def url_for_query(query = nil, start_position = 1, max_results = 20, options = {})
|
6
|
-
url = super(query, start_position, max_results, options)
|
7
|
-
"#{url}&minorversion=#{Quickbooks::Model::Preferences::MINORVERSION}"
|
8
|
-
end
|
9
|
-
|
10
5
|
private
|
11
6
|
|
12
7
|
def model
|
@@ -8,7 +8,7 @@ module Quickbooks
|
|
8
8
|
|
9
9
|
def create(entity, options = {})
|
10
10
|
raise Quickbooks::InvalidModelException.new(entity.errors.full_messages.join(',')) unless entity.valid?
|
11
|
-
response =
|
11
|
+
response = do_http_post(url_for_resource(model.resource_for_singular), entity.to_json, options)
|
12
12
|
if response.code.to_i == 200
|
13
13
|
JSON.parse(response.plain_body)
|
14
14
|
else
|
@@ -10,26 +10,27 @@ 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
|
22
|
+
value = value.map(&escape_single_quotes)
|
20
23
|
else
|
21
|
-
|
22
|
-
value = value.gsub("'", "\\\\'")
|
24
|
+
value = escape_single_quotes.call(value)
|
23
25
|
end
|
24
26
|
|
25
27
|
if operator.downcase == 'in' && value.is_a?(Array)
|
26
|
-
value = value.map{|v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}"}
|
28
|
+
value = value.map { |v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}" }
|
27
29
|
"#{field} #{operator} (#{value.join(', ')})"
|
28
30
|
else
|
29
31
|
"#{field} #{operator} #{VALUE_QUOTE}#{value}#{VALUE_QUOTE}"
|
30
32
|
end
|
31
33
|
end
|
32
|
-
|
33
34
|
end
|
34
35
|
end
|
35
36
|
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.11
|
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-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: roxml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.0
|
33
|
+
version: '4.0'
|
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: 4.0
|
40
|
+
version: '4.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activemodel
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -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
|
@@ -293,8 +294,10 @@ files:
|
|
293
294
|
- lib/quickbooks/service/company_info.rb
|
294
295
|
- lib/quickbooks/service/credit_memo.rb
|
295
296
|
- lib/quickbooks/service/credit_memo_change.rb
|
297
|
+
- lib/quickbooks/service/custom_field.rb
|
296
298
|
- lib/quickbooks/service/customer.rb
|
297
299
|
- lib/quickbooks/service/customer_change.rb
|
300
|
+
- lib/quickbooks/service/customer_type.rb
|
298
301
|
- lib/quickbooks/service/department.rb
|
299
302
|
- lib/quickbooks/service/deposit.rb
|
300
303
|
- lib/quickbooks/service/employee.rb
|