smartcoin 0.2.4 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/README.md +65 -23
- data/Rakefile +5 -1
- data/lib/smartcoin.rb +7 -3
- data/lib/smartcoin/api_operations/create.rb +1 -2
- data/lib/smartcoin/api_operations/delete.rb +12 -0
- data/lib/smartcoin/api_operations/list.rb +2 -3
- data/lib/smartcoin/api_operations/retrieve.rb +4 -4
- data/lib/smartcoin/api_operations/update.rb +13 -4
- data/lib/smartcoin/api_resource.rb +3 -3
- data/lib/smartcoin/card.rb +2 -2
- data/lib/smartcoin/charge.rb +4 -6
- data/lib/smartcoin/customer.rb +14 -0
- data/lib/smartcoin/errors/{smart_coin_error.rb → smartcoin_error.rb} +2 -2
- data/lib/smartcoin/fee.rb +2 -2
- data/lib/smartcoin/installment.rb +2 -2
- data/lib/smartcoin/plan.rb +14 -0
- data/lib/smartcoin/refund.rb +2 -2
- data/lib/smartcoin/shipping.rb +2 -2
- data/lib/smartcoin/{smart_coin_object.rb → smartcoin_object.rb} +23 -3
- data/lib/smartcoin/subscription.rb +39 -0
- data/lib/smartcoin/token.rb +2 -2
- data/lib/smartcoin/util.rb +8 -8
- data/lib/smartcoin/version.rb +1 -1
- data/smartcoin.gemspec +3 -3
- data/test/rspec_helper.rb +2 -1
- data/test/smartcoin/api_resource_spec.rb +12 -12
- data/test/smartcoin/card_spec.rb +3 -3
- data/test/smartcoin/charge_spec.rb +28 -28
- data/test/smartcoin/customer_spec.rb +62 -0
- data/test/smartcoin/plan_spec.rb +55 -0
- data/test/smartcoin/shipping_calculator_spec.rb +3 -3
- data/test/smartcoin/smart_coin_spec.rb +17 -17
- data/test/smartcoin/subscription_spec.rb +72 -0
- data/test/smartcoin/token_spec.rb +8 -8
- metadata +27 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5a57f2b1525121ddbebd33bfcb47160f9a1f9a0
|
4
|
+
data.tar.gz: f21b2a558162ce7f3a54e04a89167922b519bc36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e8b3b180b108e63d2b3b5a469922e1a44f651d57f1e90f1ddb05712b238cb63f735c79682d84282971d1becda2e7de231dd0f53945ee1cfd1095a1c5bb0f4f1
|
7
|
+
data.tar.gz: 07f6235dfb30ca6d662415217547957f12e522d841357b4d773e69e95357d4f57914eccdcb6846b4fcacd1724598f810294afa2fac299c2ed85c28515340bc63
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,37 +1,79 @@
|
|
1
|
-
|
1
|
+
[![Build Status](https://travis-ci.org/smartcoinpayments/smartcoin-ruby.svg?branch=master)](https://travis-ci.org/smartcoinpayments/smartcoin-ruby) [![Dependency Status](https://gemnasium.com/smartcoinpayments/smartcoin-ruby.svg)](https://gemnasium.com/smartcoinpayments/smartcoin-ruby)
|
2
2
|
|
3
|
-
|
3
|
+
Visite <a href="https://smartcoin.com.br/" target="_blank">Smartcoin</a> para cadastrar uma conta.
|
4
|
+
|
5
|
+
#Vamos fazer
|
4
6
|
===============
|
5
7
|
|
6
|
-
|
8
|
+
Exemplos de uso:
|
7
9
|
|
8
10
|
```ruby
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
#Credit Card Charge
|
13
|
-
card_params = {number: 4242424242424242,
|
14
|
-
exp_month: 11,
|
15
|
-
exp_year: 2017,
|
16
|
-
cvc: '111',
|
17
|
-
name: 'Arthur Granado'
|
18
|
-
}
|
19
|
-
|
20
|
-
token = SmartCoin::Token.create(token_params)
|
21
|
-
charge_params = { amount: 100, currency: 'brl', card: token.id, }
|
22
|
-
charge = SmartCoin::Charge.create(charge_params)
|
23
|
-
puts charge.to_json
|
11
|
+
Smartcoin.api_key('pk_test_407d1f51a61756') #Troque as chaves do demo para as suas de test ou live
|
12
|
+
Smartcoin.api_secret('sk_test_86e4486a0078b2') #Troque as chaves do demo para as suas de test ou live
|
24
13
|
|
25
|
-
#
|
26
|
-
|
27
|
-
charge =
|
14
|
+
#Create Charge with card information
|
15
|
+
begin
|
16
|
+
charge = Smartcoin::Charge.create({
|
17
|
+
amount: 100,
|
18
|
+
currency: 'brl',
|
19
|
+
card: {
|
20
|
+
number: 4242424242424242,
|
21
|
+
exp_month: 11,
|
22
|
+
exp_year: 2017,
|
23
|
+
cvc: '041'
|
24
|
+
}
|
25
|
+
})
|
28
26
|
puts charge.to_json
|
27
|
+
rescue Smartcoin::SmartcoinError => e
|
28
|
+
puts e.json_message
|
29
|
+
end
|
30
|
+
|
31
|
+
#Create Charge with token as card param
|
32
|
+
begin
|
33
|
+
charge = Smartcoin::Charge.create({
|
34
|
+
amount: 100,
|
35
|
+
currency: 'brl',
|
36
|
+
card: 'tok_123344555666'
|
37
|
+
})
|
38
|
+
puts charge.to_json
|
39
|
+
rescue Smartcoin::SmartcoinError => e
|
40
|
+
puts e.json_message
|
41
|
+
end
|
42
|
+
|
43
|
+
#Create Bank Slip Charge
|
44
|
+
begin
|
45
|
+
charge = Smartcoin::Charge.create({
|
46
|
+
amount: 1000,
|
47
|
+
currency: 'brl',
|
48
|
+
type: 'bank_slip'
|
49
|
+
})
|
50
|
+
puts charge.to_json
|
51
|
+
rescue Smartcoin::SmartcoinError => e
|
52
|
+
puts e.json_message
|
53
|
+
end
|
54
|
+
|
55
|
+
#Create Subscription
|
56
|
+
begin
|
57
|
+
card = {number: 4242424242424242, exp_month: 5, exp_year: 2017, cvc: '011', name: 'Doctor Who'}
|
58
|
+
customer = Smartcoin::Customer.create({
|
59
|
+
email: 'test@example.com',
|
60
|
+
card: card
|
61
|
+
})
|
62
|
+
|
63
|
+
sub = customer.subscriptions.create(plan: 'silver')
|
64
|
+
|
65
|
+
puts sub.to_json
|
66
|
+
rescue Smartcoin::SmartcoinError => e
|
67
|
+
puts e.json_message
|
68
|
+
end
|
29
69
|
```
|
30
70
|
|
31
|
-
|
71
|
+
Veja os <a href="https://github.com/smartcoinpayments/smartcoin-ruby/blob/master/test/smartcoin/charge_spec.rb" target="_blank">testes</a> para mais opções.
|
72
|
+
|
73
|
+
#Teste
|
32
74
|
====
|
33
75
|
|
34
|
-
|
76
|
+
Para executar a suite de teste:
|
35
77
|
|
36
78
|
```
|
37
79
|
rspec ./test
|
data/Rakefile
CHANGED
data/lib/smartcoin.rb
CHANGED
@@ -2,11 +2,12 @@ require "rest-client"
|
|
2
2
|
require "json"
|
3
3
|
|
4
4
|
require "smartcoin/version"
|
5
|
-
require "smartcoin/
|
5
|
+
require "smartcoin/smartcoin_object"
|
6
6
|
require "smartcoin/api_resource"
|
7
7
|
require "smartcoin/api_operations/create"
|
8
8
|
require "smartcoin/api_operations/retrieve"
|
9
9
|
require "smartcoin/api_operations/update"
|
10
|
+
require "smartcoin/api_operations/delete"
|
10
11
|
require "smartcoin/api_operations/list"
|
11
12
|
require "smartcoin/card"
|
12
13
|
require "smartcoin/token"
|
@@ -15,10 +16,13 @@ require "smartcoin/fee"
|
|
15
16
|
require "smartcoin/installment"
|
16
17
|
require "smartcoin/charge"
|
17
18
|
require "smartcoin/util"
|
18
|
-
require "smartcoin/errors/
|
19
|
+
require "smartcoin/errors/smartcoin_error"
|
19
20
|
require "smartcoin/shipping"
|
21
|
+
require "smartcoin/plan"
|
22
|
+
require "smartcoin/customer"
|
23
|
+
require "smartcoin/subscription"
|
20
24
|
|
21
|
-
module
|
25
|
+
module Smartcoin
|
22
26
|
@@api_key = ''
|
23
27
|
@@api_secret = ''
|
24
28
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module
|
1
|
+
module Smartcoin
|
2
2
|
module ApiOperations
|
3
3
|
module Retrieve
|
4
|
-
def retrieve(
|
5
|
-
|
4
|
+
def retrieve(obj_id)
|
5
|
+
obj_id = "?email=#{obj_id}" if obj_id.include? '@'
|
6
6
|
method = :get
|
7
|
-
response = api_request("#{url}/#{
|
7
|
+
response = api_request("#{url}/#{obj_id}",method)
|
8
8
|
create_from(response)
|
9
9
|
end
|
10
10
|
|
@@ -1,10 +1,19 @@
|
|
1
|
-
module
|
1
|
+
module Smartcoin
|
2
2
|
module ApiOperations
|
3
3
|
module Update
|
4
|
-
def
|
5
|
-
|
4
|
+
def save
|
5
|
+
params_to_update = {}
|
6
|
+
self.serialize_params.each do |key|
|
7
|
+
return if key.to_sym == :plan && ((@values[key] || @values[key.to_s]).is_a? Smartcoin::SmartcoinObject)
|
8
|
+
params_to_update[key] = (@values[key] || @values[key.to_s]) if @values
|
9
|
+
end
|
10
|
+
|
11
|
+
update(params_to_update)
|
12
|
+
end
|
13
|
+
|
14
|
+
def update(params=nil, url_sufix=nil)
|
6
15
|
method = :post
|
7
|
-
response = api_request(url,method,params)
|
16
|
+
response = api_request("#{url}/#{url_sufix}",method,params)
|
8
17
|
reflesh_object(response)
|
9
18
|
end
|
10
19
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Smartcoin
|
2
2
|
module ApiResource
|
3
3
|
BASE_URL = 'https://api.smartcoin.com.br'
|
4
4
|
SSL_BUNDLE_PATH = File.dirname(__FILE__) + '/../data/ssl-bundle.crt'
|
@@ -19,7 +19,7 @@ module SmartCoin
|
|
19
19
|
params = nil
|
20
20
|
end
|
21
21
|
|
22
|
-
access_keys =
|
22
|
+
access_keys = Smartcoin.access_keys.split(':')
|
23
23
|
api_key = access_keys[0]
|
24
24
|
api_secret = access_keys[1]
|
25
25
|
begin
|
@@ -39,7 +39,7 @@ module SmartCoin
|
|
39
39
|
rbody = JSON.parse(rbody)
|
40
40
|
rbody = Util.symbolize_names(rbody)
|
41
41
|
|
42
|
-
raise
|
42
|
+
raise SmartcoinError.new(rcode, rbody, rbody[:error], rbody[:error][:message])
|
43
43
|
else
|
44
44
|
raise e
|
45
45
|
end
|
data/lib/smartcoin/card.rb
CHANGED
data/lib/smartcoin/charge.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
module
|
2
|
-
class Charge <
|
1
|
+
module Smartcoin
|
2
|
+
class Charge < SmartcoinObject
|
3
3
|
include ApiResource
|
4
4
|
include ApiOperations::Create
|
5
5
|
include ApiOperations::Retrieve
|
@@ -7,15 +7,13 @@ module SmartCoin
|
|
7
7
|
include ApiOperations::List
|
8
8
|
|
9
9
|
def capture(amount=nil)
|
10
|
-
url_sufix = '/capture'
|
11
10
|
params = {amount: amount} if amount
|
12
|
-
update(
|
11
|
+
update(params, '/capture')
|
13
12
|
end
|
14
13
|
|
15
14
|
def refund(amount=nil)
|
16
|
-
url_sufix = '/refund'
|
17
15
|
params = {amount: amount} if amount
|
18
|
-
update(
|
16
|
+
update(params, '/refund')
|
19
17
|
end
|
20
18
|
end
|
21
19
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Smartcoin
|
2
|
+
class Customer < SmartcoinObject
|
3
|
+
include ApiResource
|
4
|
+
include ApiOperations::Create
|
5
|
+
include ApiOperations::Retrieve
|
6
|
+
include ApiOperations::Update
|
7
|
+
include ApiOperations::Delete
|
8
|
+
include ApiOperations::List
|
9
|
+
|
10
|
+
def subscriptions
|
11
|
+
Smartcoin::Subscription.create_from({customer: self.id})
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/smartcoin/fee.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Smartcoin
|
2
|
+
class Plan < SmartcoinObject
|
3
|
+
include ApiResource
|
4
|
+
include ApiOperations::Create
|
5
|
+
include ApiOperations::Retrieve
|
6
|
+
include ApiOperations::Update
|
7
|
+
include ApiOperations::Delete
|
8
|
+
include ApiOperations::List
|
9
|
+
|
10
|
+
def serialize_params
|
11
|
+
[:name]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/smartcoin/refund.rb
CHANGED
data/lib/smartcoin/shipping.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Smartcoin
|
2
2
|
class Shipping
|
3
3
|
BASE_SHIPPING_URL = 'https://shipping.smartcoin.com.br'
|
4
4
|
SSL_BUNDLE_PATH = File.dirname(__FILE__) + '/../data/shipping-ssl-bundle.crt'
|
@@ -22,7 +22,7 @@ module SmartCoin
|
|
22
22
|
rbody = JSON.parse(rbody)
|
23
23
|
rbody = Util.symbolize_names(rbody)
|
24
24
|
|
25
|
-
raise
|
25
|
+
raise SmartcoinError.new(rcode, rbody, rbody[:error], rbody[:error][:message])
|
26
26
|
else
|
27
27
|
raise e
|
28
28
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
module
|
2
|
-
class
|
1
|
+
module Smartcoin
|
2
|
+
class SmartcoinObject
|
3
3
|
@values
|
4
4
|
def metaclass
|
5
5
|
class << self; self; end
|
@@ -44,18 +44,38 @@ module SmartCoin
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def self.
|
47
|
+
def self.url
|
48
48
|
"/v1/#{CGI.escape(class_name.downcase)}s"
|
49
49
|
end
|
50
50
|
|
51
|
+
def url
|
52
|
+
"#{self.class.url}/#{self.id}"
|
53
|
+
end
|
54
|
+
|
51
55
|
def self.class_name
|
52
56
|
self.name.split('::')[-1]
|
53
57
|
end
|
54
58
|
|
59
|
+
def serialize_params
|
60
|
+
[:card]
|
61
|
+
end
|
62
|
+
|
55
63
|
def initialize()
|
56
64
|
@values = {}
|
57
65
|
end
|
58
66
|
|
67
|
+
def method_missing(name, *args)
|
68
|
+
if name.to_s.end_with? '='
|
69
|
+
name = name.to_s[0...-1].to_sym
|
70
|
+
end
|
71
|
+
|
72
|
+
if serialize_params.include? name
|
73
|
+
@values[name] = args[0]
|
74
|
+
else
|
75
|
+
raise NoMemoryError.new ("Cannot set #{name} on this object")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
59
79
|
def to_hash
|
60
80
|
@values.inject({}) do |result, (key,value)|
|
61
81
|
if value.is_a? Array
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Smartcoin
|
2
|
+
class Subscription < SmartcoinObject
|
3
|
+
include ApiResource
|
4
|
+
include ApiOperations::Create
|
5
|
+
include ApiOperations::Retrieve
|
6
|
+
include ApiOperations::Update
|
7
|
+
include ApiOperations::Delete
|
8
|
+
include ApiOperations::List
|
9
|
+
|
10
|
+
def class_name
|
11
|
+
Smartcoin::Subscription.class_name
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_from(params)
|
15
|
+
Smartcoin::Subscription.create_from(params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def serialize_params
|
19
|
+
[:plan, :quantity]
|
20
|
+
end
|
21
|
+
|
22
|
+
def url
|
23
|
+
"#{Smartcoin::Customer.url}/#{CGI.escape(self.customer)}/#{CGI.escape(class_name.downcase)}s"
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.list_all
|
27
|
+
method = :get
|
28
|
+
response = api_request(url, method)
|
29
|
+
create_from(response)
|
30
|
+
end
|
31
|
+
|
32
|
+
def delete
|
33
|
+
method = :delete
|
34
|
+
response = api_request("#{url}/#{self.id}",method)
|
35
|
+
reflesh_object(response)
|
36
|
+
response
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/smartcoin/token.rb
CHANGED
data/lib/smartcoin/util.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
module
|
1
|
+
module Smartcoin
|
2
2
|
class Util
|
3
3
|
OBJECT_TYPES = {
|
4
|
-
'card' =>
|
5
|
-
'charge' =>
|
6
|
-
'refund' =>
|
7
|
-
'fee' =>
|
8
|
-
'installment' =>
|
9
|
-
'Token' =>
|
4
|
+
'card' => Smartcoin::Card,
|
5
|
+
'charge' => Smartcoin::Charge,
|
6
|
+
'refund' => Smartcoin::Refund,
|
7
|
+
'fee' => Smartcoin::Fee,
|
8
|
+
'installment' => Smartcoin::Installment,
|
9
|
+
'Token' => Smartcoin::Token,
|
10
10
|
}
|
11
11
|
|
12
12
|
def self.get_object_type(type)
|
13
|
-
object_type =
|
13
|
+
object_type = Smartcoin::SmartcoinObject
|
14
14
|
object_type = OBJECT_TYPES[type] if OBJECT_TYPES[type]
|
15
15
|
object_type
|
16
16
|
end
|
data/lib/smartcoin/version.rb
CHANGED
data/smartcoin.gemspec
CHANGED
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency 'rest-client', '~> 1.
|
21
|
+
spec.add_runtime_dependency 'rest-client', '~> 1.7', '>= 1.7'
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
|
-
spec.add_development_dependency "rake", '~> 10.
|
25
|
-
spec.add_development_dependency "rspec", '~>
|
24
|
+
spec.add_development_dependency "rake", '~> 10.4', '>= 10.4'
|
25
|
+
spec.add_development_dependency "rspec", '~> 3.1', '>= 3.1'
|
26
26
|
end
|
data/test/rspec_helper.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require_relative '../rspec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin::ApiResource do
|
4
4
|
before(:each) do
|
5
|
-
|
5
|
+
Smartcoin.api_key('pk_test_3ac0794848c339')
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'call SmartCoin API' do
|
@@ -10,31 +10,31 @@ describe SmartCoin::ApiResource do
|
|
10
10
|
method = :post
|
11
11
|
|
12
12
|
params = {number: 4242424242424242,
|
13
|
-
exp_month:
|
13
|
+
exp_month: 5,
|
14
14
|
exp_year: 2017,
|
15
15
|
cvc: 111,
|
16
|
-
name: '
|
16
|
+
name: 'Doctor Who'
|
17
17
|
}
|
18
|
-
response =
|
18
|
+
response = Smartcoin::Token.api_request(url, method, params)
|
19
19
|
expect(response['id']).to match(/tok_(.*)/)
|
20
20
|
expect(response['object']).to eq('token')
|
21
21
|
expect(response['card']['last4']).to eq('4242')
|
22
|
-
expect(response['card']['exp_month']).to eq(
|
22
|
+
expect(response['card']['exp_month']).to eq(5)
|
23
23
|
expect(response['card']['exp_year']).to eq(2017)
|
24
|
-
expect(response['card']['name']).to eq('
|
24
|
+
expect(response['card']['name']).to eq('Doctor Who')
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'should throw error' do
|
28
28
|
url = "/v1/tokens"
|
29
29
|
method = :post
|
30
30
|
|
31
|
-
params = {exp_month:
|
31
|
+
params = {exp_month: 5,
|
32
32
|
exp_year: 2017,
|
33
|
-
cvc:
|
34
|
-
name: '
|
33
|
+
cvc: '021',
|
34
|
+
name: 'Doctor Who'
|
35
35
|
}
|
36
36
|
|
37
|
-
expect{
|
37
|
+
expect{ Smartcoin::Token.api_request(url, method, params) }.to raise_error Smartcoin::SmartcoinError
|
38
38
|
|
39
39
|
end
|
40
40
|
|
@@ -43,7 +43,7 @@ describe SmartCoin::ApiResource do
|
|
43
43
|
json_message = {error: {type: '', message: ''}}
|
44
44
|
http_message = ''
|
45
45
|
message = ''
|
46
|
-
smartcoin_error =
|
46
|
+
smartcoin_error = Smartcoin::SmartcoinError.new(http_code, json_message, http_message, message)
|
47
47
|
expect(smartcoin_error.http_status).to eq(http_code)
|
48
48
|
expect(smartcoin_error.json_message).to eq(json_message)
|
49
49
|
expect(smartcoin_error.http_message).to eq(http_message)
|
data/test/smartcoin/card_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative '../rspec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin::Card do
|
4
4
|
|
5
5
|
it 'should create a card object from hash' do
|
6
6
|
card_json = {
|
@@ -12,7 +12,7 @@ describe SmartCoin::Card do
|
|
12
12
|
exp_year: 2017,
|
13
13
|
fingerprint: "8535531490d032bf2268c1b4e708655c0287e07017ea19ae79e704c831b27fa6",
|
14
14
|
country: "BR",
|
15
|
-
name: "
|
15
|
+
name: "Doctor Who",
|
16
16
|
address_line1: nil,
|
17
17
|
address_line2: nil,
|
18
18
|
address_city: nil,
|
@@ -21,7 +21,7 @@ describe SmartCoin::Card do
|
|
21
21
|
address_country: nil
|
22
22
|
}
|
23
23
|
|
24
|
-
card =
|
24
|
+
card = Smartcoin::Card.create_from(card_json)
|
25
25
|
expect(card.id).to eq(card_json[:id])
|
26
26
|
expect(card.object).to eq(card_json[:object])
|
27
27
|
expect(card.last4).to eq(card_json[:last4])
|
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
require_relative '../rspec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin::Charge do
|
4
4
|
before(:each) do
|
5
|
-
|
6
|
-
|
5
|
+
Smartcoin.api_key('pk_test_3ac0794848c339')
|
6
|
+
Smartcoin.api_secret('sk_test_8bec997b7a0ea1')
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'should create a charge' do
|
@@ -11,16 +11,16 @@ describe SmartCoin::Charge do
|
|
11
11
|
exp_month: 11,
|
12
12
|
exp_year: 2017,
|
13
13
|
cvc: '111',
|
14
|
-
name: '
|
14
|
+
name: 'Doctor Who'
|
15
15
|
}
|
16
|
-
token =
|
16
|
+
token = Smartcoin::Token.create(token_params)
|
17
17
|
charge_params = {
|
18
18
|
amount: 1000,
|
19
19
|
currency: 'brl',
|
20
20
|
card: token.id,
|
21
21
|
}
|
22
22
|
|
23
|
-
charge =
|
23
|
+
charge = Smartcoin::Charge.create(charge_params)
|
24
24
|
expect(charge.id).to match(/ch_(.*)/)
|
25
25
|
expect(charge.amount).to eq(charge_params[:amount])
|
26
26
|
expect(charge.paid).to be_truthy
|
@@ -29,14 +29,14 @@ describe SmartCoin::Charge do
|
|
29
29
|
expect(charge.card.type).to eq('Visa')
|
30
30
|
expect(charge.fees.size).to be >= 2
|
31
31
|
expect(charge.fees.first.type).to eq('Smartcoin fee: flat')
|
32
|
-
expect(charge.fees.first.class).to eq(
|
32
|
+
expect(charge.fees.first.class).to eq(Smartcoin::Fee)
|
33
33
|
expect(charge.installments.size).to be >= 1
|
34
|
-
expect(charge.installments.first.class).to eq(
|
34
|
+
expect(charge.installments.first.class).to eq(Smartcoin::Installment)
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should create a bank_slip charge types' do
|
38
38
|
charge_params = {amount: 1000, currency: 'brl', type: 'bank_slip'}
|
39
|
-
charge =
|
39
|
+
charge = Smartcoin::Charge.create(charge_params)
|
40
40
|
expect(charge.id).to match(/ch_(.*)/)
|
41
41
|
expect(charge.amount).to eq(charge_params[:amount])
|
42
42
|
expect(charge.paid).to be_falsey
|
@@ -50,17 +50,17 @@ describe SmartCoin::Charge do
|
|
50
50
|
exp_month: 11,
|
51
51
|
exp_year: 2017,
|
52
52
|
cvc: '111',
|
53
|
-
name: '
|
53
|
+
name: 'Doctor Who'
|
54
54
|
}
|
55
|
-
token =
|
55
|
+
token = Smartcoin::Token.create(token_params)
|
56
56
|
charge_params = {
|
57
57
|
amount: 1000,
|
58
58
|
currency: 'brl',
|
59
59
|
card: token.id,
|
60
60
|
}
|
61
61
|
|
62
|
-
charge_created =
|
63
|
-
charge_retrieved =
|
62
|
+
charge_created = Smartcoin::Charge.create(charge_params)
|
63
|
+
charge_retrieved = Smartcoin::Charge.retrieve(charge_created.id)
|
64
64
|
expect(charge_retrieved.id).to eq(charge_created.id)
|
65
65
|
expect(charge_retrieved.amount).to eq(charge_created.amount)
|
66
66
|
expect(charge_retrieved.card.fingerprint).to eq(charge_created.card.fingerprint)
|
@@ -71,9 +71,9 @@ describe SmartCoin::Charge do
|
|
71
71
|
exp_month: 11,
|
72
72
|
exp_year: 2017,
|
73
73
|
cvc: '111',
|
74
|
-
name: '
|
74
|
+
name: 'Doctor Who'
|
75
75
|
}
|
76
|
-
token =
|
76
|
+
token = Smartcoin::Token.create(token_params)
|
77
77
|
charge_params = {
|
78
78
|
amount: 1000,
|
79
79
|
currency: 'brl',
|
@@ -81,7 +81,7 @@ describe SmartCoin::Charge do
|
|
81
81
|
capture: false
|
82
82
|
}
|
83
83
|
|
84
|
-
charge_created =
|
84
|
+
charge_created = Smartcoin::Charge.create(charge_params)
|
85
85
|
expect(charge_created.captured).to be_falsey
|
86
86
|
charge_created.capture()
|
87
87
|
expect(charge_created.captured).to be_truthy
|
@@ -92,9 +92,9 @@ describe SmartCoin::Charge do
|
|
92
92
|
exp_month: 11,
|
93
93
|
exp_year: 2017,
|
94
94
|
cvc: '111',
|
95
|
-
name: '
|
95
|
+
name: 'Doctor Who'
|
96
96
|
}
|
97
|
-
token =
|
97
|
+
token = Smartcoin::Token.create(token_params)
|
98
98
|
charge_params = {
|
99
99
|
amount: 1000,
|
100
100
|
currency: 'brl',
|
@@ -102,7 +102,7 @@ describe SmartCoin::Charge do
|
|
102
102
|
capture: false
|
103
103
|
}
|
104
104
|
|
105
|
-
charge_created =
|
105
|
+
charge_created = Smartcoin::Charge.create(charge_params)
|
106
106
|
expect(charge_created.captured).to be_falsey
|
107
107
|
amount_captured = 300
|
108
108
|
charge_created.capture(amount_captured)
|
@@ -116,16 +116,16 @@ describe SmartCoin::Charge do
|
|
116
116
|
exp_month: 11,
|
117
117
|
exp_year: 2017,
|
118
118
|
cvc: '111',
|
119
|
-
name: '
|
119
|
+
name: 'Doctor Who'
|
120
120
|
}
|
121
|
-
token =
|
121
|
+
token = Smartcoin::Token.create(token_params)
|
122
122
|
charge_params = {
|
123
123
|
amount: 1000,
|
124
124
|
currency: 'brl',
|
125
125
|
card: token.id
|
126
126
|
}
|
127
127
|
|
128
|
-
charge_created =
|
128
|
+
charge_created = Smartcoin::Charge.create(charge_params)
|
129
129
|
expect(charge_created.refunded).to be_falsey
|
130
130
|
|
131
131
|
charge_created.refund()
|
@@ -140,16 +140,16 @@ describe SmartCoin::Charge do
|
|
140
140
|
exp_month: 11,
|
141
141
|
exp_year: 2017,
|
142
142
|
cvc: '111',
|
143
|
-
name: '
|
143
|
+
name: 'Doctor Who'
|
144
144
|
}
|
145
|
-
token =
|
145
|
+
token = Smartcoin::Token.create(token_params)
|
146
146
|
charge_params = {
|
147
147
|
amount: 1000,
|
148
148
|
currency: 'brl',
|
149
149
|
card: token.id
|
150
150
|
}
|
151
151
|
|
152
|
-
charge_created =
|
152
|
+
charge_created = Smartcoin::Charge.create(charge_params)
|
153
153
|
expect(charge_created.refunded).to be_falsey
|
154
154
|
|
155
155
|
amount_refunded = 600
|
@@ -163,10 +163,10 @@ describe SmartCoin::Charge do
|
|
163
163
|
|
164
164
|
it 'should list charges that have already created' do
|
165
165
|
params = {count: 3}
|
166
|
-
charge_list =
|
166
|
+
charge_list = Smartcoin::Charge.list_all(params)
|
167
167
|
expect(charge_list.object).to eq('list')
|
168
168
|
expect(charge_list.count).to eq(3)
|
169
169
|
expect(charge_list.data.size).to eq(3)
|
170
|
-
expect(charge_list.data[0].class).to eq(
|
170
|
+
expect(charge_list.data[0].class).to eq(Smartcoin::Charge)
|
171
171
|
end
|
172
172
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../rspec_helper'
|
2
|
+
|
3
|
+
describe Smartcoin::Customer do
|
4
|
+
before(:each) do
|
5
|
+
Smartcoin.api_key('pk_test_3ac0794848c339')
|
6
|
+
Smartcoin.api_secret('sk_test_8bec997b7a0ea1')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should create a customer' do
|
10
|
+
customer_params = {email: "test_#{SecureRandom.hex(5)}@domain.com"}
|
11
|
+
customer = Smartcoin::Customer.create(customer_params)
|
12
|
+
expect(customer.email).to eq(customer_params[:email])
|
13
|
+
expect(customer.default_card).to be_nil
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should retrieve a customer by id' do
|
17
|
+
customer_params = {email: "test_#{SecureRandom.hex(5)}@domain.com"}
|
18
|
+
customer = Smartcoin::Customer.create(customer_params)
|
19
|
+
retrieved_customer = Smartcoin::Customer.retrieve(customer.id)
|
20
|
+
expect(retrieved_customer.email).to eq(customer_params[:email])
|
21
|
+
expect(retrieved_customer.to_s).to eq(customer.to_s)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should retrieve a customer by email' do
|
25
|
+
customer_params = {email: "test_#{SecureRandom.hex(5)}@domain.com"}
|
26
|
+
customer = Smartcoin::Customer.create(customer_params)
|
27
|
+
retrieved_customer = Smartcoin::Customer.retrieve(customer.email)
|
28
|
+
expect(retrieved_customer.email).to eq(customer_params[:email])
|
29
|
+
expect(retrieved_customer.to_s).to eq(customer.to_s)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should update a customer' do
|
33
|
+
token_params = {number: 4242424242424242,
|
34
|
+
exp_month: 5,
|
35
|
+
exp_year: 2017,
|
36
|
+
cvc: '011',
|
37
|
+
name: 'Doctor Who'
|
38
|
+
}
|
39
|
+
token = Smartcoin::Token.create(token_params)
|
40
|
+
|
41
|
+
customer_params = {email: "test_#{SecureRandom.hex(5)}@domain.com"}
|
42
|
+
customer = Smartcoin::Customer.create(customer_params)
|
43
|
+
customer.card = token.id
|
44
|
+
customer.save()
|
45
|
+
expect(customer.default_card).to eq(token.card.id)
|
46
|
+
expect(customer.cards.data.size).to eq(1)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should list existing customers' do
|
50
|
+
customer_list = Smartcoin::Customer.list_all
|
51
|
+
expect(customer_list.object).to eq('list')
|
52
|
+
expect(customer_list.data.size).to be >= 1
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should delete a customer' do
|
56
|
+
customer_params = {email: "test_#{SecureRandom.hex(5)}@domain.com"}
|
57
|
+
customer = Smartcoin::Customer.create(customer_params)
|
58
|
+
deleted_customer = customer.delete
|
59
|
+
expect(deleted_customer['id']).to eq(customer.id)
|
60
|
+
expect(deleted_customer['deleted']).to be_truthy
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative '../rspec_helper'
|
2
|
+
|
3
|
+
describe Smartcoin::Plan do
|
4
|
+
before(:each) do
|
5
|
+
Smartcoin.api_key('pk_test_407d1f51a61756')
|
6
|
+
Smartcoin.api_secret('sk_test_86e4486a0078b2')
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:plan_params) {plan_params = { id: "plan_#{SecureRandom.hex(5)}", amount: 1000, currency: 'brl', interval:'month', name: "Smartcoin Plan" }}
|
10
|
+
|
11
|
+
it 'should create a plan' do
|
12
|
+
plan = Smartcoin::Plan.create(plan_params)
|
13
|
+
expect(plan.id).to eq(plan_params[:id])
|
14
|
+
expect(plan.amount).to eq(plan_params[:amount])
|
15
|
+
expect(plan.currency).to eq(plan_params[:currency])
|
16
|
+
expect(plan.interval).to eq(plan_params[:interval])
|
17
|
+
expect(plan.name).to eq(plan_params[:name])
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should retrieve an existing plan' do
|
21
|
+
Smartcoin::Plan.create(plan_params)
|
22
|
+
plan = Smartcoin::Plan.retrieve(plan_params[:id])
|
23
|
+
expect(plan.id).to eq(plan_params[:id])
|
24
|
+
expect(plan.amount).to eq(plan_params[:amount])
|
25
|
+
expect(plan.currency).to eq(plan_params[:currency])
|
26
|
+
expect(plan.interval).to eq(plan_params[:interval])
|
27
|
+
expect(plan.name).to eq(plan_params[:name])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should update a existing plan' do
|
31
|
+
Smartcoin::Plan.create(plan_params)
|
32
|
+
expect(Smartcoin::Plan.new.serialize_params).to eq([:name])
|
33
|
+
|
34
|
+
plan = Smartcoin::Plan.retrieve(plan_params[:id])
|
35
|
+
plan.name = "New Smartcoin plan name"
|
36
|
+
plan.save
|
37
|
+
plan_updated = Smartcoin::Plan.retrieve(plan_params[:id])
|
38
|
+
expect(plan.name).to eq(plan_updated.name)
|
39
|
+
expect(plan.name).to eq("New Smartcoin plan name")
|
40
|
+
expect(plan_updated.name).to eq("New Smartcoin plan name")
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should list existing plans' do
|
44
|
+
plan_list = Smartcoin::Plan.list_all
|
45
|
+
expect(plan_list.object).to eq('list')
|
46
|
+
expect(plan_list.data.size).to be >= 1
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should delete existing plan' do
|
50
|
+
plan = Smartcoin::Plan.create(plan_params)
|
51
|
+
deleted_plan = plan.delete
|
52
|
+
expect(deleted_plan['id']).to eq(plan.id)
|
53
|
+
expect(deleted_plan['deleted']).to be_truthy
|
54
|
+
end
|
55
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin::Shipping do
|
4
4
|
|
5
5
|
it 'should calculate a shipping cost (destination_cep 36.600-000)' do
|
6
6
|
weight = 0.2 # Kg
|
@@ -8,7 +8,7 @@ describe SmartCoin::Shipping do
|
|
8
8
|
destination_cep = 36600000 #MG - Bicas
|
9
9
|
expect_shipping_cost = 1650 #the current value that correios charge for PAC service without deal
|
10
10
|
|
11
|
-
shipping_info =
|
11
|
+
shipping_info = Smartcoin::Shipping.calculator(weight: weight, origin_cep: origin_cep, destination_cep: destination_cep)
|
12
12
|
expect(shipping_info[:amount]).to eq(expect_shipping_cost)
|
13
13
|
end
|
14
14
|
|
@@ -18,7 +18,7 @@ describe SmartCoin::Shipping do
|
|
18
18
|
destination_cep = 24230153 #RJ - Niterói - Icaraí
|
19
19
|
expect_shipping_cost = 1370 #the current value that correios charge for PAC service without deal
|
20
20
|
|
21
|
-
shipping_info =
|
21
|
+
shipping_info = Smartcoin::Shipping.calculator(weight: weight, origin_cep: origin_cep, destination_cep: destination_cep)
|
22
22
|
expect(shipping_info[:amount]).to eq(expect_shipping_cost)
|
23
23
|
end
|
24
24
|
end
|
@@ -1,44 +1,44 @@
|
|
1
1
|
require_relative '../rspec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin do
|
4
4
|
|
5
5
|
it 'should set api key' do
|
6
|
-
|
7
|
-
|
8
|
-
expect(
|
6
|
+
Smartcoin.api_key('pk_test_1234')
|
7
|
+
Smartcoin.api_secret('')
|
8
|
+
expect(Smartcoin.access_keys).to eq('pk_test_1234:')
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'should set api secret' do
|
12
|
-
|
13
|
-
|
14
|
-
expect(
|
12
|
+
Smartcoin.api_key('')
|
13
|
+
Smartcoin.api_secret('sk_test_1234')
|
14
|
+
expect(Smartcoin.access_keys).to eq(':sk_test_1234')
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should get empty access keys' do
|
18
|
-
|
19
|
-
|
20
|
-
expect(
|
18
|
+
Smartcoin.api_key('')
|
19
|
+
Smartcoin.api_secret('')
|
20
|
+
expect(Smartcoin.access_keys).to eq(":")
|
21
21
|
end
|
22
22
|
|
23
|
-
describe
|
23
|
+
describe Smartcoin::SmartcoinObject do
|
24
24
|
it 'should convert to hash' do
|
25
25
|
params_2 = {a: 1, b: 'b'}
|
26
|
-
params = {a: 'a', b: 'b', c: 1, d:
|
27
|
-
obj =
|
26
|
+
params = {a: 'a', b: 'b', c: 1, d: Smartcoin::SmartcoinObject.create_from(params_2), e:[a: 'a', b: 1, c: Smartcoin::SmartcoinObject.create_from(params_2)]}
|
27
|
+
obj = Smartcoin::SmartcoinObject.create_from(params)
|
28
28
|
expect(obj.to_hash).to eq(params.merge({d: params_2, e: [a: 'a', b: 1, c: params_2]}))
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should convert to json' do
|
32
32
|
params_2 = {a: 1, b: 'b'}
|
33
|
-
params = {a: 'a', b: 'b', c: 1, d:
|
34
|
-
obj =
|
33
|
+
params = {a: 'a', b: 'b', c: 1, d: Smartcoin::SmartcoinObject.create_from(params_2), e:[a: 'a', b: 1, c: Smartcoin::SmartcoinObject.create_from(params_2)]}
|
34
|
+
obj = Smartcoin::SmartcoinObject.create_from(params)
|
35
35
|
expect(obj.to_json).to eq(params.to_json)
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'should convert to stirng' do
|
39
39
|
params_2 = {a: 1, b: 'b'}
|
40
|
-
params = {a: 'a', b: 'b', c: 1, d:
|
41
|
-
obj =
|
40
|
+
params = {a: 'a', b: 'b', c: 1, d: Smartcoin::SmartcoinObject.create_from(params_2), e:[a: 'a', b: 1, c: Smartcoin::SmartcoinObject.create_from(params_2)]}
|
41
|
+
obj = Smartcoin::SmartcoinObject.create_from(params)
|
42
42
|
expect(obj.to_s).to eq(params.to_json.to_s)
|
43
43
|
end
|
44
44
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require_relative '../rspec_helper'
|
2
|
+
|
3
|
+
describe Smartcoin::Subscription do
|
4
|
+
let(:plan_params) {plan_params = { id: "plan_#{SecureRandom.hex(5)}", amount: 1000, currency: 'brl', interval:'month', name: "Smartcoin Plan" }}
|
5
|
+
let(:plan_2_params) { { id: "plan_#{SecureRandom.hex(5)}", amount: 1000, currency: 'brl', interval:'week', name: "Smartcoin Week Plan" }}
|
6
|
+
let(:customer_params) { {email: "test_#{SecureRandom.hex(5)}@domain.com", card: {number: 4242424242424242, exp_month: 5, exp_year: 2017, cvc: '011', name: 'Doctor Who'} } }
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
Smartcoin.api_key('pk_test_3ac0794848c339')
|
10
|
+
Smartcoin.api_secret('sk_test_8bec997b7a0ea1')
|
11
|
+
|
12
|
+
@plan = Smartcoin::Plan.create(plan_params)
|
13
|
+
@customer = Smartcoin::Customer.create(customer_params)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should create a Subscription' do
|
17
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
18
|
+
sub = customer.subscriptions.create({plan: @plan.id})
|
19
|
+
expect(sub.plan.id).to eq(@plan.id)
|
20
|
+
expect(sub.customer).to eq(@customer.id)
|
21
|
+
expect(sub.status).to eq('active')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should retrieve a subscription' do
|
25
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
26
|
+
sub = customer.subscriptions.create({plan: @plan.id})
|
27
|
+
retrieved_sub = customer.subscriptions.retrieve(sub.id)
|
28
|
+
expect(retrieved_sub.id).to eq(sub.id)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should delete a subscription' do
|
32
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
33
|
+
sub = customer.subscriptions.create({plan: @plan.id})
|
34
|
+
sub.delete
|
35
|
+
expect(sub.status).to eq('canceled')
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should update a subscription plan' do
|
39
|
+
plan_2 = Smartcoin::Plan.create(plan_2_params)
|
40
|
+
|
41
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
42
|
+
sub = customer.subscriptions.create({plan: @plan.id})
|
43
|
+
sub.plan = plan_2.id
|
44
|
+
sub.save
|
45
|
+
|
46
|
+
expect(sub.plan.name).to eq(plan_2_params[:name])
|
47
|
+
expect(sub.plan.id).to eq(plan_2_params[:id])
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should update a subscription quantity' do
|
51
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
52
|
+
sub = customer.subscriptions.create({plan: @plan.id})
|
53
|
+
sub.quantity = 3
|
54
|
+
sub.save
|
55
|
+
|
56
|
+
expect(sub.quantity).to eq(3)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should list customer subscriptions' do
|
60
|
+
customer = Smartcoin::Customer.retrieve(@customer.id)
|
61
|
+
customer.subscriptions.create({plan: @plan.id})
|
62
|
+
list = customer.subscriptions.list_all
|
63
|
+
expect(list.object).to eq('list')
|
64
|
+
expect(list.data.size).to eq(1)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should list all account subscriptions' do
|
68
|
+
list = Smartcoin::Subscription.list_all
|
69
|
+
expect(list.object).to eq('list')
|
70
|
+
expect(list.data.size).to be >= 1
|
71
|
+
end
|
72
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
1
|
require_relative '../rspec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe Smartcoin::Token do
|
4
4
|
|
5
5
|
it 'should call API to create a Token' do
|
6
|
-
|
6
|
+
Smartcoin.api_key('pk_test_3ac0794848c339')
|
7
7
|
token_params = {number: 4242424242424242,
|
8
|
-
exp_month:
|
8
|
+
exp_month: 5,
|
9
9
|
exp_year: 2017,
|
10
|
-
cvc: '
|
11
|
-
name: '
|
10
|
+
cvc: '011',
|
11
|
+
name: 'Doctor Who'
|
12
12
|
}
|
13
13
|
|
14
|
-
token =
|
14
|
+
token = Smartcoin::Token.create(token_params)
|
15
15
|
expect(token.id).to match(/tok_(.)/)
|
16
16
|
expect(token.object).to eq('token')
|
17
|
-
expect(token.card.exp_month).to eq(
|
17
|
+
expect(token.card.exp_month).to eq(5)
|
18
18
|
expect(token.card.exp_year).to eq(2017)
|
19
|
-
expect(token.card.name).to eq('
|
19
|
+
expect(token.card.name).to eq('Doctor Who')
|
20
20
|
end
|
21
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartcoin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arthur Granado
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.7'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: '1.7'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
29
|
+
version: '1.7'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: '1.7'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,40 +50,40 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '10.
|
53
|
+
version: '10.4'
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 10.
|
56
|
+
version: '10.4'
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '10.
|
63
|
+
version: '10.4'
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 10.
|
66
|
+
version: '10.4'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: rspec
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
73
|
+
version: '3.1'
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: '3.1'
|
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: '
|
83
|
+
version: '3.1'
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
86
|
+
version: '3.1'
|
87
87
|
description: Ruby library to SmartCoin API - https://smartcoin.com.br
|
88
88
|
email:
|
89
89
|
- agranado@smartcoin.com.br
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- ".gitignore"
|
95
95
|
- ".ruby-gemset"
|
96
96
|
- ".ruby-version"
|
97
|
+
- ".travis.yml"
|
97
98
|
- Gemfile
|
98
99
|
- LICENSE.txt
|
99
100
|
- README.md
|
@@ -102,18 +103,22 @@ files:
|
|
102
103
|
- lib/data/ssl-bundle.crt
|
103
104
|
- lib/smartcoin.rb
|
104
105
|
- lib/smartcoin/api_operations/create.rb
|
106
|
+
- lib/smartcoin/api_operations/delete.rb
|
105
107
|
- lib/smartcoin/api_operations/list.rb
|
106
108
|
- lib/smartcoin/api_operations/retrieve.rb
|
107
109
|
- lib/smartcoin/api_operations/update.rb
|
108
110
|
- lib/smartcoin/api_resource.rb
|
109
111
|
- lib/smartcoin/card.rb
|
110
112
|
- lib/smartcoin/charge.rb
|
111
|
-
- lib/smartcoin/
|
113
|
+
- lib/smartcoin/customer.rb
|
114
|
+
- lib/smartcoin/errors/smartcoin_error.rb
|
112
115
|
- lib/smartcoin/fee.rb
|
113
116
|
- lib/smartcoin/installment.rb
|
117
|
+
- lib/smartcoin/plan.rb
|
114
118
|
- lib/smartcoin/refund.rb
|
115
119
|
- lib/smartcoin/shipping.rb
|
116
|
-
- lib/smartcoin/
|
120
|
+
- lib/smartcoin/smartcoin_object.rb
|
121
|
+
- lib/smartcoin/subscription.rb
|
117
122
|
- lib/smartcoin/token.rb
|
118
123
|
- lib/smartcoin/util.rb
|
119
124
|
- lib/smartcoin/version.rb
|
@@ -122,8 +127,11 @@ files:
|
|
122
127
|
- test/smartcoin/api_resource_spec.rb
|
123
128
|
- test/smartcoin/card_spec.rb
|
124
129
|
- test/smartcoin/charge_spec.rb
|
130
|
+
- test/smartcoin/customer_spec.rb
|
131
|
+
- test/smartcoin/plan_spec.rb
|
125
132
|
- test/smartcoin/shipping_calculator_spec.rb
|
126
133
|
- test/smartcoin/smart_coin_spec.rb
|
134
|
+
- test/smartcoin/subscription_spec.rb
|
127
135
|
- test/smartcoin/token_spec.rb
|
128
136
|
homepage: https://smartcoin.com.br
|
129
137
|
licenses:
|
@@ -154,6 +162,9 @@ test_files:
|
|
154
162
|
- test/smartcoin/api_resource_spec.rb
|
155
163
|
- test/smartcoin/card_spec.rb
|
156
164
|
- test/smartcoin/charge_spec.rb
|
165
|
+
- test/smartcoin/customer_spec.rb
|
166
|
+
- test/smartcoin/plan_spec.rb
|
157
167
|
- test/smartcoin/shipping_calculator_spec.rb
|
158
168
|
- test/smartcoin/smart_coin_spec.rb
|
169
|
+
- test/smartcoin/subscription_spec.rb
|
159
170
|
- test/smartcoin/token_spec.rb
|