promoqui-api-sdk 1.4.2 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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