kiik 0.1.6 → 0.1.7

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: a8998be7b8baba07f66b96c691d57d3f3e0da93b
4
- data.tar.gz: f9943d6dd97f205948ab7bf3ad2d9cceda0f9c2b
3
+ metadata.gz: d9db3e2d275e408ccbe15e36ce8a02aae81862c2
4
+ data.tar.gz: f0125173d02ee5d254826298e98868fd81ccd203
5
5
  SHA512:
6
- metadata.gz: 735f3b9f243e7221eb809b3821d3f3189e9043404c1f8afdcc3844fd7838225a94c7b55b7608b326bc5c21e3b6e6b7b8d41a9c84fbf8f76c371d8dd12997258b
7
- data.tar.gz: 2f1bddd6b7a03e08c6b94af29d5181fb6b851d19798a8c3f89490c9de6563354e0941e58d53b31ae554b7a56de8b462762ae6355c294d12842bf69c8b6bfbd5d
6
+ metadata.gz: adeeead3cb6e34a72e5c3b9b9b60cac48e9368abceb9c6c474ea0965e11cdd275091bf72d7d4550dd0f2af9acd1f9def974cb4c53ea3b79ba53a22bcce8e88ab
7
+ data.tar.gz: 5f450c094c5c5866ad50bfaf5f3b96521dc963f0f4359874567085e5f9c27cf94949a6ef34347c2f1813b18192e02917cc203864dd96d8aa6b05424b438b5991
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kiik (0.1.6)
4
+ kiik (0.1.7)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/kiik.gemspec CHANGED
@@ -2,7 +2,7 @@ $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'kiik'
5
- s.version = '0.1.6'
5
+ s.version = '0.1.7'
6
6
  s.summary = 'Integrate Kiik with your Ruby app'
7
7
  s.description = "KiiK's official gem that helps you to integrate with our services. See https://docs.kiik.com.br for details."
8
8
  s.authors = ['Julien Lucca', 'Esdras Eduardo']
data/lib/kiik/error.rb CHANGED
@@ -2,11 +2,18 @@ module Kiik
2
2
  class KiikError < StandardError
3
3
  attr_reader :errors
4
4
  def initialize(body = nil)
5
- @errors = body.nil? ? [] : [{attr: body['error']['param'], message: body['error']['message']}]
5
+ @errors = body.nil? || body["errors"].nil? ? [] : body["errors"].map{ |error| symbolize_keys(error) }
6
6
  end
7
7
 
8
8
  def to_s
9
- @errors.map{ |e| e[:message] }.join(", ")
9
+ @errors.map{ |e| e[:param].nil? ? e[:message] : "#{e[:param]}: #{e[:message]}" }.join(", ")
10
10
  end
11
+
12
+ private
13
+
14
+ def symbolize_keys(hash)
15
+ Hash[hash.map{|(k,v)| [k.to_sym,v]}]
16
+ end
17
+
11
18
  end
12
19
  end
data/lib/kiik/resource.rb CHANGED
@@ -14,13 +14,13 @@ module Kiik
14
14
  "#{Kiik.host}/#{Kiik::Util.underscore(class_name)}s"
15
15
  end
16
16
 
17
- def opts
17
+ def opts(headers={})
18
18
  {
19
19
  basic_auth: {username: Kiik.api_key, password: ''},
20
20
  headers: {
21
21
  "Accept-Version" => Kiik.version,
22
22
  "Content-Type" => 'application/json'
23
- }
23
+ }.merge(headers)
24
24
  }
25
25
  end
26
26
 
@@ -30,8 +30,8 @@ module Kiik
30
30
  instance
31
31
  end
32
32
 
33
- def request(path=nil, params={}, method=:GET)
34
- options = opts.merge!(body: JSON.generate(params))
33
+ def request(path=nil, params={}, method=:GET, header={})
34
+ options = opts(header).merge(body: JSON.generate(params))
35
35
  url_abs = path.nil? ? url : "#{url}/#{path}"
36
36
 
37
37
  response = case method
@@ -50,7 +50,6 @@ module Kiik
50
50
  build(JSON.parse(response.body))
51
51
  when 422, 404
52
52
  result = JSON.parse(response.body)
53
- result["error"]["param"] = "id" unless result["error"]["param"]
54
53
  KiikError.new(result)
55
54
  else
56
55
  raise StandardError.new(response.message)
@@ -24,9 +24,9 @@ module Kiik
24
24
 
25
25
  module ClassMethods
26
26
 
27
- def create!(params={})
27
+ def create!(params={}, header={})
28
28
  begin
29
- create(params)
29
+ create(params, header)
30
30
  rescue KiikError => e
31
31
  build(params, e)
32
32
  rescue StandardError => e
@@ -34,8 +34,8 @@ module Kiik
34
34
  end
35
35
  end
36
36
 
37
- def create(params={})
38
- result = request(nil, params, :POST)
37
+ def create(params={}, header={})
38
+ result = request(nil, params, :POST, header)
39
39
  raise result if result.kind_of? StandardError
40
40
  result
41
41
  end
@@ -24,9 +24,9 @@ module Kiik
24
24
 
25
25
  module ClassMethods
26
26
 
27
- def update!(params={id: 0})
27
+ def update!(params={id: 0}, header={})
28
28
  begin
29
- update(params)
29
+ update(params, header)
30
30
  rescue KiikError => e
31
31
  build(params, e)
32
32
  rescue StandardError => e
@@ -34,8 +34,8 @@ module Kiik
34
34
  end
35
35
  end
36
36
 
37
- def update(params={id: 0})
38
- result = request(params[:id], params, :PUT)
37
+ def update(params={id: 0}, header={})
38
+ result = request(params[:id], params, :PUT, header)
39
39
  raise result if result.kind_of? StandardError
40
40
  result
41
41
  end
@@ -4,7 +4,7 @@ module Kiik
4
4
  class CustomerTest < Test::Unit::TestCase
5
5
 
6
6
  should "raise exception for create empty customer" do
7
- respond = {error: {type:"invalid_request_error", param:"name", message:"Param name is required"}}
7
+ respond = {errors: [{type:"invalid_request_error", param:"name", message:"Param name is required"}]}
8
8
  post({}, respond, 422)
9
9
  assert_raise KiikError do
10
10
  Kiik::Customer.create
@@ -12,7 +12,7 @@ module Kiik
12
12
  end
13
13
 
14
14
  should "return invalid customer for create! empty customer" do
15
- respond = {error: {type:"invalid_request_error", param:"name", message:"Param name is required"}}
15
+ respond = {errors: [{type:"invalid_request_error", param:"name", message:"Param name is required"}]}
16
16
  post({}, respond, 422)
17
17
  customer = Kiik::Customer.create!
18
18
  assert !customer.valid?
@@ -45,7 +45,7 @@ module Kiik
45
45
  end
46
46
 
47
47
  should "raise exception for update with customer doesn't exists, code 404" do
48
- error = {error: {type:"invalid_request_error", message:"Customer doesn't exists"}}
48
+ error = {errors: [{type:"invalid_request_error", message:"Customer doesn't exists"}]}
49
49
  put(0, {}, error, 422)
50
50
  assert_raise KiikError do
51
51
  Kiik::Customer.update
@@ -53,11 +53,10 @@ module Kiik
53
53
  end
54
54
 
55
55
  should "return invalid customer for update! empty customer" do
56
- error = {error: {type:"invalid_request_error", message:"Customer doesn't exists"}}
56
+ error = {errors: [{type:"invalid_request_error", message:"Customer doesn't exists"}]}
57
57
  put(0, {}, error, 422)
58
58
  customer = Kiik::Customer.update!
59
59
  assert !customer.valid?
60
- assert_equal customer.errors.first[:attr], "id"
61
60
  assert_equal customer.errors.first[:message], "Customer doesn't exists"
62
61
  end
63
62
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kiik
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julien Lucca
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-19 00:00:00.000000000 Z
12
+ date: 2015-12-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mocha