Module: QboApi::Util

Included in:
QboApi
Defined in:
lib/qbo_api/util.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#minor_versionObject



5
6
7
# File 'lib/qbo_api/util.rb', line 5

def minor_version
  @minor_version || QboApi.minor_version
end

Instance Method Details

#add_minor_version_to(path) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/qbo_api/util.rb', line 40

def add_minor_version_to(path)
  if minor_version = self.minor_version
    add_params_to_path(path: path, params: { "minorversion" => minor_version })
  else
    path
  end
end

#add_params_to_path(path:, params:) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/qbo_api/util.rb', line 48

def add_params_to_path(path:, params:)
  uri = URI.parse(path)
  params.each do |p|
    new_query_ar = URI.decode_www_form(uri.query || '') << p.to_a
    uri.query = URI.encode_www_form(new_query_ar)
  end
  uri.to_s
end

#add_request_id_to(path) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/qbo_api/util.rb', line 32

def add_request_id_to(path)
  if QboApi.request_id
    add_params_to_path(path: path, params: { "requestid" => uuid })
  else
    path
  end
end

#cdc_time(time) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/qbo_api/util.rb', line 13

def cdc_time(time)
  if time.is_a?(String)
    time
  else
    time.iso8601
  end
end

#esc(query) ⇒ Object



9
10
11
# File 'lib/qbo_api/util.rb', line 9

def esc(query)
  query.gsub("'", "\\\\'")
end

#finalize_path(path, method:, params: nil) ⇒ Object



25
26
27
28
29
30
# File 'lib/qbo_api/util.rb', line 25

def finalize_path(path, method:, params: nil)
  path = add_request_id_to(path) if method == :post
  path = add_minor_version_to(path)
  path = add_params_to_path(path: path, params: params) if params
  path
end

#uuidObject



21
22
23
# File 'lib/qbo_api/util.rb', line 21

def uuid
  SecureRandom.uuid
end