spos-client 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: 0a004408a1afb5ed04b3f5ad94f3b09e90ae4f18
4
- data.tar.gz: 10a19a8bbc630d2eebdeb4bf733c2115b5a74764
3
+ metadata.gz: 687ae7e8ba8c00b321184134f831ee38961bd66e
4
+ data.tar.gz: 4902191fb18a251c65ab5ebafab39f56502edb6b
5
5
  SHA512:
6
- metadata.gz: 71989537cc76b7d11bff3d82de68765e0fa0f104826d49b9cc258711806c8f56636b5f277ded19e71948a52900037d0b3447a8c02172580dc575c17433396b8f
7
- data.tar.gz: 52d8cc5ec2d2f291f4a93f5230e8a8bce7dbf8ca524209cedf4761e6785d8777851c21910c1e9d7461019344405c587cdf3dca187508c7449200ef6ba3214118
6
+ metadata.gz: 292276edf118de0f964666abc374ad0f46032b5e42e4be732890f2c4fd5c789c5bba49a93a6f89497a9ab102d561f18340e5ad3bb352ec51bb6cdf3ac2611f91
7
+ data.tar.gz: 385bf9c494380c190c173f2b0f020f9c0e881c00d4342a20dac1fe4f3c8bb7f250a88c08e2f1ca186dfd6af70bee61f71dc44f6f3199056762b259b2cd5bb53f
data/lib/spos-client.rb CHANGED
@@ -3,6 +3,8 @@ require 'json'
3
3
  require 'ostruct'
4
4
  require 'time'
5
5
  require_relative './spos-client/resource'
6
+ require_relative './spos-client/EmailTemplate'
7
+ require_relative './spos-client/Order'
6
8
  require_relative './spos-client/time-helpers'
7
9
 
8
10
  class SPOSClient
@@ -34,7 +36,7 @@ class SPOSClient
34
36
  @DiscountMethods = Resource.new "discount_methods", self
35
37
  @DiscountRules = Resource.new "discount_rules", self
36
38
  @Drips = Resource.new "drips", self
37
- @EmailTemplates = Resource.new "email_templates", self
39
+ @EmailTemplates = EmailTemplateResource.new "email_templates", self
38
40
  @GiftCertificateTransactions = Resource.new "gift_certificate_transactions", self
39
41
  @GiftCertificates = Resource.new "gift_certificates", self
40
42
  @Inventory = Resource.new "inventory", self
@@ -46,7 +48,7 @@ class SPOSClient
46
48
  @OrderPayments = Resource.new "order_payments", self
47
49
  @OrderShipments = Resource.new "order_shipments", self
48
50
  @OrderStatuses = Resource.new "order_statuses", self
49
- @Orders = Resource.new "orders", self
51
+ @Orders = OrderResource.new "orders", self
50
52
  @Pages = Resource.new "pages", self
51
53
  @PaymentMethods = Resource.new "payment_methods", self
52
54
  @ProductLists = Resource.new "product_lists", self
@@ -89,10 +91,9 @@ class SPOSClient
89
91
  "?#{queries.join('&')}"
90
92
  end
91
93
 
92
- def request(path, body = nil, opts = nil)
94
+ def request(path, body = nil, opts = nil, method = nil)
93
95
  query = self.parse_query(opts)
94
96
  uri = URI.parse("https://#{@domain}/api/v1/#{path}#{query}")
95
- puts uri.request_uri
96
97
  http = Net::HTTP.new(uri.host, uri.port)
97
98
  http.use_ssl = true
98
99
 
@@ -102,7 +103,14 @@ class SPOSClient
102
103
  if(body.has_key?("id"))
103
104
  request = Net::HTTP::Put.new(uri.request_uri)
104
105
  else
105
- request = Net::HTTP::Post.new(uri.request_uri)
106
+ case method
107
+ when "GET"
108
+ request = Net::HTTP::Get.new(uri.request_uri)
109
+ when "PUT"
110
+ request = Net::HTTP::Put.new(uri.request_uri)
111
+ else
112
+ request = Net::HTTP::Post.new(uri.request_uri)
113
+ end
106
114
  end
107
115
 
108
116
  request.add_field('Content-Type', 'application/json')
@@ -112,9 +120,15 @@ class SPOSClient
112
120
  request['X-AC-Auth-Token'] = @token
113
121
  response = http.request(request)
114
122
 
115
- body = JSON.parse(JSON.parse(response.body).to_json, object_class: OpenStruct)
123
+ if(response.nil? || response.body.nil?)
124
+ body = nil
125
+ else
126
+ body = JSON.parse(JSON.parse(response.body).to_json, object_class: OpenStruct)
127
+ end
128
+
129
+
116
130
 
117
- if body.status_code === 429
131
+ if !body.nil? && body.status_code === 429
118
132
  time = Time.now.time_until(Time.parse(response['Retry-After']))
119
133
  sleeptime = (time/1000)
120
134
 
@@ -35,4 +35,11 @@ class Resource
35
35
  @client.request(path, body)
36
36
  end
37
37
 
38
+ def custom(path, body = nil, opts = nil, method = nil)
39
+ if(body.is_a?(OpenStruct))
40
+ body = body.to_h
41
+ end
42
+
43
+ @client.request(path, body, opts, method)
44
+ end
38
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spos-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shayne Martin