promoqui-api-sdk 1.4.2 → 1.5.0

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: f95805f2a8b3768b1123ce89286b0a6350cf2e40
4
- data.tar.gz: 1a6a3d9700609083c700ad9ab89379e7a92fa28d
3
+ metadata.gz: 45eb87a29abe0c9c4efbc6a1c921bca4a80eb874
4
+ data.tar.gz: 6f47ae5a6c71fabdbd179c6ebf075b9b1651f1b4
5
5
  SHA512:
6
- metadata.gz: 49530e9611ec44f5e23b356ac7df97f1e93c53ffb3d1310179c11209224b503e22bd140cee02ca21cc7ae9ded104096cb6dcff58b71afc7594b5bc5ad4bfcd9e
7
- data.tar.gz: 06d78b287a0288edfc5af75007e7d15c89e8a8312edf025be049d23a16ed23c8c020ddfe0aa7cc52a2cbf44e20179e159b5a361289d03b7f6c7025c544cc3277
6
+ metadata.gz: c128563e15ea195e6e808549cd4cf4c044ca897f83335a64cf5cf3410ac10c4e711700fc9e183d1821722df0f0a401b91796ed6e928658b43c2cd8ccb18a9450
7
+ data.tar.gz: 48493190d9cf888da59852636c07347e165168bd6a7cd8b3e8ceacbb54c9034eaecfb1fc1cc815121fbcf67b92d9057a12a21e8bc48a2841df93777250588a5c
data/lib/pqsdk.rb CHANGED
@@ -3,8 +3,9 @@ require 'json'
3
3
  require 'time'
4
4
  require 'pqsdk/city'
5
5
  require 'pqsdk/leaflet'
6
+ require 'pqsdk/offer'
6
7
  require 'pqsdk/rest_layer'
7
8
  require 'pqsdk/settings'
8
9
  require 'pqsdk/store'
9
10
  require 'pqsdk/token'
10
- require 'pqsdk/version'
11
+ require 'pqsdk/version'
@@ -0,0 +1,30 @@
1
+ module PQSDK
2
+ class Offer
3
+ attr_accessor :title, :description, :price, :original_price, :discount, :start_date, :end_date, :image, :store_ids
4
+
5
+ def initialize
6
+ store_ids = []
7
+ end
8
+
9
+ def save
10
+ method = :post
11
+ endpoint = "v1/offers"
12
+
13
+ fields = {}
14
+ [ :title, :description, :price, :original_price, :discount, :start_date, :end_date, :image ].each do |key|
15
+ fields[key.to_s] = send(key) unless send(key).nil?
16
+ end
17
+ fields['store_ids'] = store_ids
18
+
19
+ res = RestLayer.send(method, endpoint, fields, {'Authorization' => "Bearer #{Token.access_token}", 'Content-Type' => 'application/json'})
20
+
21
+ if [200, 201].include? res[0]
22
+ # All right!
23
+ elsif res[0] == 400
24
+ raise Exception.new("Bad request! Error: #{res[1]['errors']}")
25
+ else
26
+ raise Exception.new("Unexpected HTTP status code #{res[0]}")
27
+ end
28
+ end
29
+ end
30
+ end
@@ -21,7 +21,12 @@ module PQSDK
21
21
  def self.post(endpoint, parameters, headers)
22
22
  url = URI.parse("#{Settings.schema}://#{Settings.host}/#{endpoint}")
23
23
  req = Net::HTTP::Post.new(url.request_uri)
24
- req.set_form_data(parameters)
24
+
25
+ if headers['Content-Type'] == 'application/json'
26
+ req.body = parameters.to_json
27
+ else
28
+ req.set_form_data(parameters)
29
+ end
25
30
 
26
31
  headers.each do |name, value|
27
32
  req[name.to_s] = value
@@ -32,7 +37,11 @@ module PQSDK
32
37
  end
33
38
 
34
39
  check_status(res.code.to_i, res.body)
35
- [ res.code.to_i, JSON.parse(res.body), res.to_hash ]
40
+ if res.body and res.body.length > 1
41
+ [ res.code.to_i, JSON.parse(res.body), res.to_hash ]
42
+ else
43
+ [ res.code.to_i, {}, res.to_hash ]
44
+ end
36
45
  end
37
46
 
38
47
  def self.put(endpoint, parameters, headers)
@@ -56,8 +65,6 @@ module PQSDK
56
65
  def self.check_status(code, body)
57
66
  if code >= 500
58
67
  raise Exception.new("Internal Server Error")
59
- elsif code == 400
60
- raise Exception.new("Bad Request. This usually imples a bug in this gem! Error: #{JSON.parse(body)['error']}")
61
68
  elsif code == 401
62
69
  raise Exception.new("You are not authorized to perform that request")
63
70
  end
@@ -1,5 +1,7 @@
1
1
  module PQSDK
2
2
  class Settings
3
+ # Why not cattr_accessor? :(
4
+
3
5
  @@host = nil
4
6
  @@app_secret = nil
5
7
  @@schema = 'http'
data/lib/pqsdk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module PQSDK
2
- VERSION = '1.4.2'
2
+ VERSION = '1.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: promoqui-api-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Boffa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-22 00:00:00.000000000 Z
11
+ date: 2015-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -33,6 +33,7 @@ files:
33
33
  - lib/pqsdk.rb
34
34
  - lib/pqsdk/city.rb
35
35
  - lib/pqsdk/leaflet.rb
36
+ - lib/pqsdk/offer.rb
36
37
  - lib/pqsdk/rest_layer.rb
37
38
  - lib/pqsdk/settings.rb
38
39
  - lib/pqsdk/store.rb