quickbooks-ruby 1.0.8 → 1.0.9

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: ffab8263cca62cc3969f22b01909705cdb4f73ef0fa85ab37d18f728e3edc990
4
- data.tar.gz: 8dd7022c2615a07e6225bb4ce569b6cd6b24d8b8e405a203a4b4151813b88599
3
+ metadata.gz: 375f9daba794fd0b93b4fde2b81e668f480a6957b44f17cdfb040ca184a1678b
4
+ data.tar.gz: aca82b6f6dbdd8efd18b649cfb37360588a7d08f5834cac395f0714f62454d9c
5
5
  SHA512:
6
- metadata.gz: ea5558538936684066b819ec00f1203a7a7655cbafa85a0e7473567d975b5d1d0538c311d523ff075b5c4c906c470d6be60f45fc44cccb211987cb76a14d50ac
7
- data.tar.gz: a0e7fca6ca6414716b5dc6da256772389c17e7d95d8ebf1fa0d42251aded6efd075e5514d3049ed2a2bbdca7b80911dd34b6da44e24d07356f0c05ad1d4543d5
6
+ metadata.gz: fd4e12e405534be10ff030540645495c396f5f0d9238e261880584cf13418ce6642a7e8a59a0b1d7d0f5be97fdf50aee9f0f7339fc14b2ef593d610545c1b92b
7
+ data.tar.gz: 9c424fa4c473994139630bc131a1c58905e09aa16fae6b6dec2df9a17b8efdef1a55046518b9d5d0a7ffe532c281dbb81fdf16ee04cde39893ced168467b56f4
@@ -191,6 +191,7 @@ Faraday::Middleware.register_middleware :gzip => lambda { Gzip }
191
191
  module Quickbooks
192
192
  @@sandbox_mode = false
193
193
  @@logger = nil
194
+ @@minorversion = 47
194
195
 
195
196
  class << self
196
197
  def sandbox_mode
@@ -201,6 +202,14 @@ module Quickbooks
201
202
  @@sandbox_mode = sandbox_mode
202
203
  end
203
204
 
205
+ def minorversion=(v)
206
+ @@minorversion = v
207
+ end
208
+
209
+ def minorversion
210
+ @@minorversion
211
+ end
212
+
204
213
  def logger
205
214
  @@logger ||= ::Logger.new($stdout) # TODO: replace with a real log file
206
215
  end
@@ -4,7 +4,6 @@ module Quickbooks
4
4
  XML_COLLECTION_NODE = "Account"
5
5
  XML_NODE = "Account"
6
6
  REST_RESOURCE = 'account'
7
- MINORVERSION = 13
8
7
 
9
8
  ASSET = 'Asset'
10
9
  EQUITY = 'Equity'
@@ -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
@@ -17,7 +17,6 @@ module Quickbooks
17
17
  XML_COLLECTION_NODE = "Invoice"
18
18
  XML_NODE = "Invoice"
19
19
  EMAIL_STATUS_NEED_TO_SEND = 'NeedToSend'
20
- MINORVERSION = 37
21
20
 
22
21
  xml_accessor :id, :from => 'Id'
23
22
  xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
@@ -10,7 +10,6 @@ module Quickbooks
10
10
  XML_COLLECTION_NODE = "Item"
11
11
  XML_NODE = "Item"
12
12
  REST_RESOURCE = 'item'
13
- MINORVERSION = 47
14
13
 
15
14
  INVENTORY_TYPE = 'Inventory'
16
15
  NON_INVENTORY_TYPE = 'NonInventory'
@@ -4,7 +4,6 @@ module Quickbooks
4
4
  XML_COLLECTION_NODE = "Preferences"
5
5
  XML_NODE = "Preferences"
6
6
  REST_RESOURCE = 'preferences'
7
- MINORVERSION = 32
8
7
 
9
8
  xml_name XML_NODE
10
9
 
@@ -8,7 +8,6 @@ module Quickbooks
8
8
  REST_RESOURCE = 'purchaseorder'
9
9
  XML_COLLECTION_NODE = "PurchaseOrder"
10
10
  XML_NODE = "PurchaseOrder"
11
- MINORVERSION = 45
12
11
 
13
12
  xml_accessor :id, :from => 'Id'
14
13
  xml_accessor :sync_token, :from => 'SyncToken', :as => Integer
@@ -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
@@ -83,7 +83,7 @@ module Quickbooks
83
83
  query ||= default_model_query
84
84
  query = "#{query} STARTPOSITION #{start_position} MAXRESULTS #{max_results}"
85
85
 
86
- "#{url_for_base}/query?query=#{CGI.escape(query)}"
86
+ "#{url_for_base}/query?query=#{CGI.escape(query)}&minorversion=#{Quickbooks.minorversion}"
87
87
  end
88
88
 
89
89
  private
@@ -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}?minorversion=#{Quickbooks::Model::Customer::MINORVERSION}"
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
@@ -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}?minorversion=#{Quickbooks::Model::Invoice::MINORVERSION}"
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}?minorversion=#{Quickbooks::Model::Item::MINORVERSION}"
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
@@ -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{|v| v.to_s.gsub("'", "\\\\'") }
22
+ value = value.map(&escape_single_quotes)
20
23
  else
21
- # escape single quotes with an escaped backslash
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
@@ -1,5 +1,5 @@
1
1
  module Quickbooks
2
2
 
3
- VERSION = "1.0.8"
3
+ VERSION = "1.0.9"
4
4
 
5
5
  end
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.8
4
+ version: 1.0.9
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-05-14 00:00:00.000000000 Z
11
+ date: 2020-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2