kiik 0.1.5 → 0.1.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 +4 -4
- data/Gemfile.lock +2 -2
- data/config/kiik.yml +3 -3
- data/kiik.gemspec +3 -3
- data/lib/kiik/resource.rb +29 -0
- data/lib/kiik/rest/create.rb +18 -33
- data/lib/kiik/rest/update.rb +21 -31
- data/test/kiik/customer_test.rb +39 -12
- data/test/test_mock.rb +13 -9
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8998be7b8baba07f66b96c691d57d3f3e0da93b
|
4
|
+
data.tar.gz: f9943d6dd97f205948ab7bf3ad2d9cceda0f9c2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
+
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
|
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
|
-
|
3
|
+
Gem::Specification.new do |s|
|
4
4
|
s.name = 'kiik'
|
5
|
-
s.version = '0.1.
|
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
|
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 = {})
|
data/lib/kiik/rest/create.rb
CHANGED
@@ -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 =
|
23
|
-
raise result if result.
|
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
|
data/lib/kiik/rest/update.rb
CHANGED
@@ -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
|
-
|
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 =
|
23
|
-
raise result if result.
|
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
|
data/test/kiik/customer_test.rb
CHANGED
@@ -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
|
-
|
8
|
-
|
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
|
-
|
16
|
-
|
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
|
-
|
23
|
-
|
24
|
-
customer = Kiik::Customer.create
|
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
|
-
|
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
|
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
|
-
|
40
|
-
|
41
|
-
customer = Kiik::Customer.new
|
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 = {:
|
6
|
+
headers = {accept_version: Kiik.version, content_type: 'application/json'}
|
7
7
|
stub_request(method, "#{Kiik.api_key}:@#{host}/#{url}").
|
8
|
-
with(:
|
9
|
-
with(:
|
8
|
+
with(headers: headers).
|
9
|
+
with(body: params)
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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.
|
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-
|
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
|
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
|
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.
|
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
|