kiik 0.1.5 → 0.1.6

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: b6f8af83f78371428d1419ef682c9de5e09f0eab
4
- data.tar.gz: ec55948e8487624751521e9e0b69f8abed80d9f0
3
+ metadata.gz: a8998be7b8baba07f66b96c691d57d3f3e0da93b
4
+ data.tar.gz: f9943d6dd97f205948ab7bf3ad2d9cceda0f9c2b
5
5
  SHA512:
6
- metadata.gz: d4064160a604e4320e24aedad51f5206ab8b6cbf605d5f0267f25537cde7e33a623c3e41d07e9c311c086dd4b9d1762e3d64be3c13ab9e846f1f54f7c55a1239
7
- data.tar.gz: e9a79edbfece2d884e2d3a44743de81ed14df5efe11d66c7d6109efec0dec7c32193e4399e94ec0624e58f72e722f33c7e6f7d18e700969be4961f9768e0a0f4
6
+ metadata.gz: 735f3b9f243e7221eb809b3821d3f3189e9043404c1f8afdcc3844fd7838225a94c7b55b7608b326bc5c21e3b6e6b7b8d41a9c84fbf8f76c371d8dd12997258b
7
+ data.tar.gz: 2f1bddd6b7a03e08c6b94af29d5181fb6b851d19798a8c3f89490c9de6563354e0941e58d53b31ae554b7a56de8b462762ae6355c294d12842bf69c8b6bfbd5d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kiik (0.1.4)
4
+ kiik (0.1.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -53,7 +53,7 @@ DEPENDENCIES
53
53
  rake (~> 10.4)
54
54
  shoulda (~> 3.5)
55
55
  test-unit (~> 3.1)
56
- webmock (~> 1.21.0)
56
+ webmock (~> 1.21)
57
57
 
58
58
  BUNDLED WITH
59
59
  1.10.6
data/config/kiik.yml CHANGED
@@ -1,12 +1,12 @@
1
1
  development:
2
2
  api_key: payos_test
3
3
  host: http://localhost:8800
4
- version: 0.3
4
+ version: '0.3'
5
5
  staging:
6
6
  api_key: B31DCE74-E768-43ED-86DA-85501612548F
7
7
  host: https://demo.kiik.com
8
- version: 0.3
8
+ version: '0.3'
9
9
  production:
10
10
  api_key: B31DCE74-E768-43ED-86DA-85501612548F
11
11
  host: https://api.kiik.com
12
- version: 0.3
12
+ version: '0.3'
data/kiik.gemspec CHANGED
@@ -1,8 +1,8 @@
1
1
  $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
2
 
3
- spec = Gem::Specification.new do |s|
3
+ Gem::Specification.new do |s|
4
4
  s.name = 'kiik'
5
- s.version = '0.1.5'
5
+ s.version = '0.1.6'
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']
@@ -14,7 +14,7 @@ spec = Gem::Specification.new do |s|
14
14
  s.add_development_dependency('shoulda', '~> 3.5')
15
15
  s.add_development_dependency('test-unit', '~> 3.1')
16
16
  s.add_development_dependency('rake', '~> 10.4')
17
- s.add_development_dependency('webmock', '~> 1.21.0')
17
+ s.add_development_dependency('webmock', '~> 1.21')
18
18
 
19
19
  s.files = `git ls-files`.split("\n")
20
20
  s.test_files = `git ls-files -- test/*`.split("\n")
data/lib/kiik/resource.rb CHANGED
@@ -5,6 +5,7 @@ module Kiik
5
5
  attr_accessor :id, :created, :errors
6
6
 
7
7
  class << self
8
+
8
9
  def class_name
9
10
  self.name.split('::')[-1]
10
11
  end
@@ -28,6 +29,34 @@ module Kiik
28
29
  instance.errors = error.errors unless error.nil?
29
30
  instance
30
31
  end
32
+
33
+ def request(path=nil, params={}, method=:GET)
34
+ options = opts.merge!(body: JSON.generate(params))
35
+ url_abs = path.nil? ? url : "#{url}/#{path}"
36
+
37
+ response = case method
38
+ when :GET
39
+ get(url_abs, options)
40
+ when :POST
41
+ post(url_abs, options)
42
+ when :PUT
43
+ put(url_abs, options)
44
+ else
45
+ raise StandardError.new("Method #{method} not implemented")
46
+ end
47
+
48
+ case response.code
49
+ when 200
50
+ build(JSON.parse(response.body))
51
+ when 422, 404
52
+ result = JSON.parse(response.body)
53
+ result["error"]["param"] = "id" unless result["error"]["param"]
54
+ KiikError.new(result)
55
+ else
56
+ raise StandardError.new(response.message)
57
+ end
58
+ end
59
+
31
60
  end
32
61
 
33
62
  def initialize(attributes = {})
@@ -2,12 +2,28 @@ module Kiik
2
2
  module Rest
3
3
  module Create
4
4
  class << self
5
+
5
6
  def included(base)
6
7
  base.extend(ClassMethods)
7
8
  end
9
+
10
+ end
11
+
12
+ def create
13
+ result = self.class.create(self.to_json)
14
+ raise result if result.instance_of? StandardError
15
+
16
+ if result.instance_of? KiikError
17
+ self.errors = result.errors
18
+ return false
19
+ end
20
+
21
+ initialize(result.to_json)
22
+ true
8
23
  end
9
24
 
10
25
  module ClassMethods
26
+
11
27
  def create!(params={})
12
28
  begin
13
29
  create(params)
@@ -19,43 +35,12 @@ module Kiik
19
35
  end
20
36
 
21
37
  def create(params={})
22
- result = request_create(params)
23
- raise result if result.instance_of? StandardError
38
+ result = request(nil, params, :POST)
39
+ raise result if result.kind_of? StandardError
24
40
  result
25
41
  end
26
-
27
- def request_create(params)
28
- options = opts.merge!(body: JSON.generate(params))
29
- response = post(url, options)
30
- case response.code
31
- when 200
32
- build(JSON.parse(response.body))
33
- when 402
34
- result = KiikError.new
35
- result.errors << ({attr: 'status', message: 'recused'})
36
- build(JSON.parse(response.body), result)
37
- when 422
38
- KiikError.new(JSON.parse(response.body))
39
- else
40
- StandardError.new(response.message)
41
- end
42
- end
43
-
44
42
  end
45
43
 
46
- def create
47
- created = false
48
- result = self.class.request_create(self.to_json)
49
- if result.instance_of? KiikError
50
- self.errors = result.errors
51
- elsif result.instance_of? StandardError
52
- raise result
53
- else
54
- initialize(result.to_json)
55
- created = true
56
- end
57
- created
58
- end
59
44
  end
60
45
  end
61
46
  end
@@ -2,55 +2,45 @@ module Kiik
2
2
  module Rest
3
3
  module Update
4
4
  class << self
5
+
5
6
  def included(base)
6
7
  base.extend(ClassMethods)
7
8
  end
9
+
10
+ end
11
+
12
+ def update
13
+ result = self.class.update(self.to_json)
14
+ raise result if result.instance_of? StandardError
15
+
16
+ if result.instance_of? KiikError
17
+ self.errors = result.errors
18
+ return false
19
+ end
20
+
21
+ initialize(result.to_json)
22
+ true
8
23
  end
9
24
 
10
25
  module ClassMethods
11
- def update!(params={})
26
+
27
+ def update!(params={id: 0})
12
28
  begin
13
29
  update(params)
14
30
  rescue KiikError => e
15
31
  build(params, e)
16
32
  rescue StandardError => e
17
- e
33
+ raise e
18
34
  end
19
35
  end
20
36
 
21
- def update(params={})
22
- result = request_update(params)
23
- raise result if result.instance_of? StandardError or result.instance_of? KiikError
37
+ def update(params={id: 0})
38
+ result = request(params[:id], params, :PUT)
39
+ raise result if result.kind_of? StandardError
24
40
  result
25
41
  end
26
-
27
- def request_update(params)
28
- options = opts.merge!(body: JSON.generate(params))
29
- response = put(url + "/" + params['id'], options)
30
- case response.code
31
- when 200
32
- build(JSON.parse(response.body))
33
- when 422
34
- KiikError.new(JSON.parse(response.body))
35
- else
36
- StandardError.new(response.message)
37
- end
38
- end
39
42
  end
40
43
 
41
- def updated
42
- updated = false
43
- result = self.class.request_update(self.to_json)
44
- if result.instance_of? KiikError
45
- self.errors = result.errors
46
- elsif result.instance_of? StandardError
47
- raise result
48
- else
49
- initialize(result.to_json)
50
- updated = true
51
- end
52
- updated
53
- end
54
44
  end
55
45
  end
56
46
  end
@@ -4,24 +4,24 @@ module Kiik
4
4
  class CustomerTest < Test::Unit::TestCase
5
5
 
6
6
  should "raise exception for create empty customer" do
7
- error = {type:"invalid_request_error", param:"name", message:"Param name is required"}
8
- make_customer({}, error)
7
+ respond = {error: {type:"invalid_request_error", param:"name", message:"Param name is required"}}
8
+ post({}, respond, 422)
9
9
  assert_raise KiikError do
10
10
  Kiik::Customer.create
11
11
  end
12
12
  end
13
13
 
14
14
  should "return invalid customer for create! empty customer" do
15
- error = {type:"invalid_request_error", param:"name", message:"Param name is required"}
16
- make_customer({}, error)
15
+ respond = {error: {type:"invalid_request_error", param:"name", message:"Param name is required"}}
16
+ post({}, respond, 422)
17
17
  customer = Kiik::Customer.create!
18
18
  assert !customer.valid?
19
19
  end
20
20
 
21
21
  should "return a new customer for create" do
22
- data = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345"}
23
- make_customer data
24
- customer = Kiik::Customer.create data
22
+ customer_data = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345"}
23
+ post(customer_data, customer_data)
24
+ customer = Kiik::Customer.create customer_data
25
25
  assert customer.valid?
26
26
  assert customer.cards.empty?
27
27
  end
@@ -29,18 +29,45 @@ module Kiik
29
29
  should "return a new customer with card for create with card" do
30
30
  card_data = {name:"Card Name", number:"1234567890", month:12, year:17}
31
31
  customer_data = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345", card:card_data}
32
- make_customer customer_data
32
+ respond = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345", cards:[card_data]}
33
+ post(customer_data, respond)
33
34
  customer = Kiik::Customer.create customer_data
34
35
  assert customer.valid?
35
- assert customer.cards[0].name == card_data[:name]
36
+ assert customer.cards.first.name == card_data[:name]
36
37
  end
37
38
 
38
39
  should "return customer for create using instance" do
39
- data = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345"}
40
- make_customer data
41
- customer = Kiik::Customer.new data
40
+ customer_data = {name:"Customer test", email:"customer@email.com", phone: "11223344", document:"11122233345"}
41
+ post(customer_data)
42
+ customer = Kiik::Customer.new customer_data
42
43
  customer.create
43
44
  assert customer.valid?
44
45
  end
46
+
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"}}
49
+ put(0, {}, error, 422)
50
+ assert_raise KiikError do
51
+ Kiik::Customer.update
52
+ end
53
+ end
54
+
55
+ should "return invalid customer for update! empty customer" do
56
+ error = {error: {type:"invalid_request_error", message:"Customer doesn't exists"}}
57
+ put(0, {}, error, 422)
58
+ customer = Kiik::Customer.update!
59
+ assert !customer.valid?
60
+ assert_equal customer.errors.first[:attr], "id"
61
+ assert_equal customer.errors.first[:message], "Customer doesn't exists"
62
+ end
63
+
64
+ should "return customer updated" do
65
+ customer_data = {id: 1, name:"New name", email:"customer@email.com", phone: "11223344", document:"11122233345"}
66
+ customer_send = {id: 1, name:"New name"}
67
+ put(customer_data[:id], customer_send, customer_data)
68
+ customer = Kiik::Customer.update! customer_send
69
+ assert_equal customer.name, customer_data[:name]
70
+ assert_equal customer.email, customer_data[:email]
71
+ end
45
72
  end
46
73
  end
data/test/test_mock.rb CHANGED
@@ -3,18 +3,22 @@ module Kiik
3
3
 
4
4
  def request(url, params = {}, method = :any)
5
5
  host = Kiik.host.gsub(/^https:\/\//, "").gsub(/^http:\/\//, "")
6
- headers = {:accept_version => Kiik.version, :content_type => 'application/json'}
6
+ headers = {accept_version: Kiik.version, content_type: 'application/json'}
7
7
  stub_request(method, "#{Kiik.api_key}:@#{host}/#{url}").
8
- with(:headers => headers).
9
- with(:body => params)
8
+ with(headers: headers).
9
+ with(body: params)
10
10
  end
11
11
 
12
- def make_customer(params = {}, error = nil)
13
- code = error.nil? ? 200 : 422
14
- respond = error.nil? ? params.clone : {error: error}
15
- respond[:cards] = [params[:card]] unless params[:card].nil?
16
- request("customers", params, :post).
17
- to_return(:status => code, :body => JSON.generate(respond), :headers => {})
12
+ def post(request = {}, respond = nil, code = 200)
13
+ respond = request.clone if respond.nil?
14
+ request("customers", request, :post).
15
+ to_return(status: code, body: JSON.generate(respond), headers: {})
16
+ end
17
+
18
+ def put(id = 0, request = {}, respond = nil, code = 200)
19
+ respond = request.clone if respond.nil?
20
+ request("customers/#{id}", request, :put).
21
+ to_return(status: code, body: JSON.generate(respond), headers: {})
18
22
  end
19
23
  end
20
24
  end
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.5
4
+ version: 0.1.6
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-16 00:00:00.000000000 Z
12
+ date: 2015-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mocha
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: 1.21.0
76
+ version: '1.21'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 1.21.0
83
+ version: '1.21'
84
84
  description: KiiK's official gem that helps you to integrate with our services. See
85
85
  https://docs.kiik.com.br for details.
86
86
  email:
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  version: '0'
133
133
  requirements: []
134
134
  rubyforge_project:
135
- rubygems_version: 2.4.8
135
+ rubygems_version: 2.4.5.1
136
136
  signing_key:
137
137
  specification_version: 4
138
138
  summary: Integrate Kiik with your Ruby app