aceitafacil 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +13 -3
- data/lib/aceitafacil/card.rb +5 -1
- data/lib/aceitafacil/item.rb +4 -0
- data/lib/aceitafacil/payment.rb +12 -0
- data/lib/aceitafacil/version.rb +1 -1
- data/lib/generators/aceitafacil/install_generator.rb +2 -2
- data/spec/aceitafacil/card_spec.rb +2 -1
- data/spec/aceitafacil/payment_spec.rb +49 -4
- data/spec/aceitafacil/vendor_spec.rb +9 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTY0YTY5OWJjMjg4NDAwODc0ODQ5ZTZkMzMyZjQ2ZDMwYjUwNDNhNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NmU3MjRjNTNiM2ZmMmVkZTQzYmQxMDJmN2ViN2Q0M2YzZGUxNjEyMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjgxMzI5NDMzZDJkYjFhYmYwZGFjZWI1YmQ5NTRkNDgzZmRmNjM2YmJlZDFi
|
10
|
+
MWQ0NzZlYzJiZTY4N2U0MmNmYzg0YmYwNDBiNjZlZjFiNGEwZTcwNjc2M2Fl
|
11
|
+
OGYzMDhhYmEyZDQwNTZjMjVlOGUxYTBmYTQ3N2UyZDQ4MjBiYTc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTdkYWI1YmUyM2VhZjAwY2Y2YTAxYTYyNTQ2MGNiNmE4NzYzZmI1M2ZiNWQ4
|
14
|
+
NmJiNGYwZjQ3M2IyMzA4NWM0Y2U1ODA3YmIwYjhlODY5YWYyMjA2MGNkOGUx
|
15
|
+
Zjc3MGM3ZGQ3OGUxYjBkMDgxZDhkZjRlZTQ1NDdkMzQ3YzdmNDQ=
|
data/README.md
CHANGED
@@ -2,21 +2,25 @@
|
|
2
2
|
|
3
3
|
Esta gem habilita as funcionalidades da API do serviço [Aceita Fácil][url] no Ruby on Rails.
|
4
4
|
|
5
|
-
##
|
5
|
+
## Instalação
|
6
6
|
|
7
7
|
Adicione esta linha ao seu Gemfile:
|
8
8
|
|
9
9
|
gem 'aceitafacil'
|
10
10
|
|
11
|
-
|
11
|
+
Execute para instalar a gem no seu projeto:
|
12
12
|
|
13
13
|
$ bundle install
|
14
14
|
|
15
|
+
Em seguida instale o arquivo de configuração na sua aplicação:
|
16
|
+
|
17
|
+
$ rails generate aceitafacil:install
|
18
|
+
|
15
19
|
Ou instale assim:
|
16
20
|
|
17
21
|
$ gem install aceitafacil
|
18
22
|
|
19
|
-
##
|
23
|
+
## Como utilizar
|
20
24
|
|
21
25
|
Cadastre os vendedores que receberão os pagamentos da loja em questão da seguinte forma:
|
22
26
|
|
@@ -75,6 +79,12 @@ Após a chamada do método save todos os métodos abaixo deverão estar preenchi
|
|
75
79
|
@payment.payer
|
76
80
|
@payment.paid
|
77
81
|
|
82
|
+
Todos os modelos Card, Vendor, Bank, Item, Payment possuem validação no estilo ActiveRecord, ex:
|
83
|
+
|
84
|
+
@card.valid?
|
85
|
+
|
86
|
+
Se for válido retornará true, se não false e o array @card.errors será preenchido com as mensagens de erro padrão do ActiveRecord.
|
87
|
+
|
78
88
|
## Contributing
|
79
89
|
|
80
90
|
1. Fork it ( http://github.com/wilbert/aceitafacil/fork )
|
data/lib/aceitafacil/card.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
class Card
|
5
|
+
include ActiveModel::Model
|
5
6
|
include ActiveModel::Validations
|
6
7
|
|
7
8
|
validates :customer_id, :number, :name, :cvv, :exp_date, presence: true
|
9
|
+
validates :exp_date, format: { with: /\d{6}/ }
|
8
10
|
|
9
11
|
attr_accessor :customer_id, :number, :name, :cvv, :exp_date
|
10
12
|
attr_accessor :token, :card_brand, :last_digits, :status
|
@@ -22,6 +24,8 @@ module Aceitafacil
|
|
22
24
|
|
23
25
|
json = JSON.parse(response.body)
|
24
26
|
|
27
|
+
return [] if json["card"].nil?
|
28
|
+
|
25
29
|
json["card"].each do |remote_card|
|
26
30
|
card = Card.new(token: remote_card["token"], card_brand: remote_card["card_brand"], last_digits: remote_card["last_digits"])
|
27
31
|
cards << card
|
@@ -81,7 +85,7 @@ module Aceitafacil
|
|
81
85
|
response = @connection.post("card", params)
|
82
86
|
|
83
87
|
json = JSON.parse(response.body)
|
84
|
-
|
88
|
+
|
85
89
|
self.token = json["card"][0]["token"]
|
86
90
|
self.card_brand = json["card"][0]["card_brand"]
|
87
91
|
self.last_digits = json["card"][0]["last_digits"]
|
data/lib/aceitafacil/item.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
class Item
|
5
|
+
include ActiveModel::Validations
|
6
|
+
|
7
|
+
validates :amount, :vendor_id, :vendor_name, :fee_split, :description, :trigger_lock, presence: true
|
8
|
+
|
5
9
|
attr_accessor :amount, :vendor_id, :vendor_name, :fee_split, :description, :trigger_lock
|
6
10
|
|
7
11
|
def initialize(params = {})
|
data/lib/aceitafacil/payment.rb
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
class Payment
|
5
|
+
include ActiveModel::Validations
|
6
|
+
include ActiveModel::Model
|
7
|
+
|
8
|
+
validates :card, :customer_id, :customer_name, :customer_email, :customer_email_language, presence: true
|
9
|
+
validates :description, :paymentmethod_id, :total_amount, presence: true
|
10
|
+
|
5
11
|
attr_accessor :card, :customer_id, :customer_name, :customer_email, :customer_email_language
|
6
12
|
attr_accessor :organization_id, :organization_name, :paymentmethod, :charge_type, :payer, :total_amount
|
7
13
|
attr_accessor :paid, :closed, :attempted, :attempted_count, :next_payment_attempt, :period_start
|
@@ -46,6 +52,12 @@ module Aceitafacil
|
|
46
52
|
end
|
47
53
|
|
48
54
|
def save
|
55
|
+
return false if not self.valid?
|
56
|
+
|
57
|
+
self.items.each do |item|
|
58
|
+
return false if not item.valid?
|
59
|
+
end
|
60
|
+
|
49
61
|
response = @connection.post("payment", params)
|
50
62
|
|
51
63
|
json = JSON.parse(response.body)
|
data/lib/aceitafacil/version.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
# encode:
|
1
|
+
# encode: utf8
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
module Generators
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
6
|
source_root File.expand_path("../../templates", __FILE__)
|
7
7
|
|
8
|
-
desc "
|
8
|
+
desc "Create the initializer on rails app"
|
9
9
|
|
10
10
|
def copy_initializer
|
11
11
|
template "aceitafacil.rb", "config/initializers/aceitafacil.rb"
|
@@ -5,7 +5,7 @@ describe Aceitafacil::Card do
|
|
5
5
|
|
6
6
|
before do
|
7
7
|
@card = Aceitafacil::Card.new(card_params)
|
8
|
-
|
8
|
+
#@card.save
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "instatiating a new card" do
|
@@ -49,6 +49,7 @@ describe Aceitafacil::Card do
|
|
49
49
|
|
50
50
|
it "should return a list cards" do
|
51
51
|
@card.save
|
52
|
+
|
52
53
|
@cards = Aceitafacil::Card.find_by_customer_id("1")
|
53
54
|
@cards.count.should == 1
|
54
55
|
end
|
@@ -3,9 +3,34 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe Aceitafacil::Payment do
|
6
|
+
let(:card_params) { { name: "Card Holder", number: "4012001038443335", cvv: "123", exp_date: "201807", customer_id: "1" } }
|
7
|
+
|
8
|
+
let(:bank_params) {
|
9
|
+
{
|
10
|
+
code: "001",
|
11
|
+
agency: "123-4",
|
12
|
+
account_type: 1, # 1 Corrent, 2 Poupança
|
13
|
+
account_number: "1234-5",
|
14
|
+
account_holder_name: "Fulano",
|
15
|
+
account_holder_document_type: 1, # 1 CPF, 2 CNPJ
|
16
|
+
account_holder_document_number: "12345678909"
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
let(:vendor_params) {
|
21
|
+
{
|
22
|
+
id: "2", name: "Vendor name", email: "vendor@vendor.com", bank: @bank
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
before do
|
27
|
+
@card = Aceitafacil::Card.new(card_params)
|
28
|
+
@bank = Aceitafacil::Bank.new(bank_params)
|
29
|
+
@vendor = Aceitafacil::Vendor.new(vendor_params)
|
30
|
+
|
31
|
+
@vendor.save
|
32
|
+
@card.save
|
6
33
|
|
7
|
-
before :each do
|
8
|
-
@vendor = Aceitafacil::Vendor.find(2)
|
9
34
|
@card = Aceitafacil::Card.find_by_customer_id(1)[0]
|
10
35
|
@item = Aceitafacil::Item.new(item_params)
|
11
36
|
@payment = Aceitafacil::Payment.new(payment_params)
|
@@ -34,13 +59,33 @@ describe Aceitafacil::Payment do
|
|
34
59
|
vendor_name: @vendor.name,
|
35
60
|
fee_split: 1,
|
36
61
|
description: "Test item",
|
37
|
-
trigger_lock: false
|
62
|
+
trigger_lock: "false"
|
38
63
|
}
|
39
64
|
}
|
40
65
|
|
66
|
+
it "should return false if an item is invalid" do
|
67
|
+
@item = Aceitafacil::Item.new
|
68
|
+
@item.valid?.should be_false
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return false if an item is invalid" do
|
72
|
+
@payment = Aceitafacil::Payment.new
|
73
|
+
|
74
|
+
@payment.valid?.should be_false
|
75
|
+
end
|
76
|
+
|
77
|
+
# it "should return false if an item is invalid" do
|
78
|
+
# incorrect_params = payment_params.dup
|
79
|
+
|
80
|
+
# incorrect_params[:item] = [Aceitafacil::Item.new]
|
81
|
+
|
82
|
+
# @payment = Aceitafacil::Payment.new(incorrect_params)
|
83
|
+
# @payment.save.should be_false
|
84
|
+
# end
|
85
|
+
|
41
86
|
it "should return a successfully response" do
|
42
87
|
response = @payment.save
|
43
|
-
response.should be_kind_of Net::
|
88
|
+
response.should be_kind_of Net::HTTPOK
|
44
89
|
end
|
45
90
|
|
46
91
|
it "should return a correct params" do
|
@@ -79,20 +79,19 @@ describe Aceitafacil::Vendor do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should update a remote vendor" do
|
82
|
+
@vendor.save
|
82
83
|
@vendor.name = "Chuck Norris"
|
83
84
|
@vendor.update
|
84
|
-
@vendor = Aceitafacil::Vendor.find(
|
85
|
+
@vendor = Aceitafacil::Vendor.find(@vendor.id)
|
85
86
|
@vendor.name.should eq("Chuck Norris")
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
# end
|
97
|
-
# end
|
90
|
+
describe "making a save call" do
|
91
|
+
it "should create a new remote vendor" do
|
92
|
+
response = @vendor.save
|
93
|
+
puts response.inspect
|
94
|
+
response.should be_kind_of Net::HTTPOK
|
95
|
+
end
|
96
|
+
end
|
98
97
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aceitafacil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wilbert Ribeiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|