aceitafacil 0.0.2 → 0.0.3
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 +8 -8
- data/README.md +9 -8
- data/aceitafacil.gemspec +3 -1
- data/lib/aceitafacil/bank.rb +5 -0
- data/lib/aceitafacil/card.rb +7 -1
- data/lib/aceitafacil/connection.rb +0 -2
- data/lib/aceitafacil/vendor.rb +7 -1
- data/lib/aceitafacil/version.rb +1 -1
- data/lib/aceitafacil.rb +7 -1
- data/lib/{templates → generators}/aceitafacil/install_generator.rb +3 -0
- data/lib/{templates → generators}/templates/aceitafacil.rb +0 -0
- data/spec/aceitafacil/card_spec.rb +16 -0
- data/spec/aceitafacil/vendor_spec.rb +48 -10
- data/spec/spec_helper.rb +6 -0
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzA4ZmE5ZDA3NTA4YmQ4NDliODViNzNiOWUyN2U2NzA4OWFjM2ExNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTQwM2NmYjY2YmZlNmZjYmYxYmRjYWM2MTVhNTQ1MmRiNGIyNWUxMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGUyNzZlMDhlMjBiNzYzMThjNzk0Yzg0NTllMTQ0ZjhmNzRiZmI4YWMyZjEw
|
10
|
+
ZTIxM2Q1NTUzMjJjNGVmZWQwZDI3NTM4YTI0YjI4NWQ1MTllOWY3OTU0ZDE2
|
11
|
+
YmEyNmJjMzhiNmZhNjA0ZWYyMDk2ZTQxNGEwZjllOWY4MDI1ZGI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGViZWU2OWM1NWRhOTIwNDM0ODczODI4NDk3MDdlYzExZmIwMTEzMzhlYWQ5
|
14
|
+
MzdjYjljM2I2Nzk4ZGQwODI0NWZhNmU3MzFmMzhlMTk2NWZkOGE4NTA4Zjk5
|
15
|
+
ZmI2OTYxODQ2MGU5N2IwYTMwMzJmZmIxYWU4YzI1OGNlZGY4Y2Q=
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Adicione esta linha ao seu Gemfile:
|
|
10
10
|
|
11
11
|
E execute:
|
12
12
|
|
13
|
-
$ bundle
|
13
|
+
$ bundle install
|
14
14
|
|
15
15
|
Ou instale assim:
|
16
16
|
|
@@ -21,19 +21,20 @@ Ou instale assim:
|
|
21
21
|
Cadastre os vendedores que receberão os pagamentos da loja em questão da seguinte forma:
|
22
22
|
|
23
23
|
@vendor = Aceitafacil::Vendor.new(id: "2", name: "Vendor name", email: "vendor@vendor.com",
|
24
|
-
bank:
|
24
|
+
bank: @bank)
|
25
|
+
|
26
|
+
@vendor.save
|
27
|
+
|
28
|
+
O id: refere-se ao ID do vendedor na base de dados da aplicação Host. O objeto @bank pode ser instanciado da seguinte forma:
|
29
|
+
|
30
|
+
@bank = Aceitafacil::Bank.new({
|
25
31
|
code: "001",
|
26
32
|
agency: "123-4",
|
27
33
|
account_type: 1, # 1 Corrent, 2 Poupança
|
28
34
|
account_number: "1234-5",
|
29
35
|
account_holder_name: "Fulano",
|
30
36
|
account_holder_document_type: 1, # 1 CPF, 2 CNPJ
|
31
|
-
account_holder_document_number: "12345678909"
|
32
|
-
})
|
33
|
-
|
34
|
-
@vendor.save
|
35
|
-
|
36
|
-
O id: refere-se ao ID do vendedor na base de dados da aplicação Host.
|
37
|
+
account_holder_document_number: "12345678909"})
|
37
38
|
|
38
39
|
Implemente um formulário para capturar os dados do cartão de crédito. Segue um exemplo:
|
39
40
|
|
data/aceitafacil.gemspec
CHANGED
@@ -18,7 +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_dependency "json",
|
21
|
+
spec.add_dependency "json", "1.8.1"
|
22
|
+
spec.add_dependency "activemodel", "4.0.4"
|
23
|
+
spec.add_dependency "activesupport", "4.0.4"
|
22
24
|
|
23
25
|
spec.add_development_dependency "bundler", "~> 1.5"
|
24
26
|
spec.add_development_dependency "rake", "10.3.1"
|
data/lib/aceitafacil/bank.rb
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
class Bank
|
5
|
+
include ActiveModel::Validations
|
6
|
+
|
7
|
+
validates :code, :agency, :account_type, :account_number, :account_holder_name, presence: true
|
8
|
+
validates :account_holder_document_type, :account_holder_document_number, presence: true
|
9
|
+
|
5
10
|
attr_accessor :code, :agency, :account_type, :account_number, :account_holder_name
|
6
11
|
attr_accessor :account_holder_document_type, :account_holder_document_number
|
7
12
|
|
data/lib/aceitafacil/card.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
#encoding: utf-8
|
2
2
|
|
3
|
-
module Aceitafacil
|
3
|
+
module Aceitafacil
|
4
4
|
class Card
|
5
|
+
include ActiveModel::Validations
|
6
|
+
|
7
|
+
validates :customer_id, :number, :name, :cvv, :exp_date, presence: true
|
8
|
+
|
5
9
|
attr_accessor :customer_id, :number, :name, :cvv, :exp_date
|
6
10
|
attr_accessor :token, :card_brand, :last_digits, :status
|
7
11
|
|
@@ -72,6 +76,8 @@ module Aceitafacil
|
|
72
76
|
end
|
73
77
|
|
74
78
|
def save
|
79
|
+
return false if not self.valid?
|
80
|
+
|
75
81
|
response = @connection.post("card", params)
|
76
82
|
|
77
83
|
json = JSON.parse(response.body)
|
data/lib/aceitafacil/vendor.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
module Aceitafacil
|
4
4
|
class Vendor
|
5
|
+
include ActiveModel::Validations
|
6
|
+
|
7
|
+
validates :id, :email, :name, :bank, presence: true
|
8
|
+
|
5
9
|
attr_accessor :id, :name, :email, :bank
|
6
10
|
|
7
11
|
def initialize(params = {})
|
@@ -10,7 +14,7 @@ module Aceitafacil
|
|
10
14
|
self.id = params[:id]
|
11
15
|
self.name = params[:name]
|
12
16
|
self.email = params[:email]
|
13
|
-
self.bank =
|
17
|
+
self.bank = params[:bank]
|
14
18
|
end
|
15
19
|
|
16
20
|
def params
|
@@ -70,6 +74,8 @@ module Aceitafacil
|
|
70
74
|
end
|
71
75
|
|
72
76
|
def save
|
77
|
+
return false if not self.valid? or not self.bank.valid?
|
78
|
+
|
73
79
|
response = @connection.post("vendor", params)
|
74
80
|
|
75
81
|
return response
|
data/lib/aceitafacil/version.rb
CHANGED
data/lib/aceitafacil.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
|
-
require 'active_support'
|
1
|
+
require 'active_support/core_ext'
|
2
|
+
require 'active_model'
|
2
3
|
require "builder"
|
3
4
|
require "net/http"
|
4
5
|
require "net/https"
|
5
6
|
require "json"
|
6
7
|
|
7
8
|
module Aceitafacil
|
9
|
+
def self.clear_data
|
10
|
+
@connection = Aceitafacil::Connection.new
|
11
|
+
@connection.post("cleardata")
|
12
|
+
end
|
13
|
+
|
8
14
|
class Production
|
9
15
|
BASE_URL = "api.aceitafacil.com"
|
10
16
|
end
|
@@ -1,9 +1,12 @@
|
|
1
|
+
# encode: utf-8
|
2
|
+
|
1
3
|
module Aceitafacil
|
2
4
|
module Generators
|
3
5
|
class InstallGenerator < Rails::Generators::Base
|
4
6
|
source_root File.expand_path("../../templates", __FILE__)
|
5
7
|
|
6
8
|
desc "Cria o initializer do Aceita Fácil na app rails"
|
9
|
+
|
7
10
|
def copy_initializer
|
8
11
|
template "aceitafacil.rb", "config/initializers/aceitafacil.rb"
|
9
12
|
end
|
File without changes
|
@@ -5,6 +5,22 @@ describe Aceitafacil::Card do
|
|
5
5
|
|
6
6
|
before do
|
7
7
|
@card = Aceitafacil::Card.new(card_params)
|
8
|
+
@card.save
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "instatiating a new card" do
|
12
|
+
it "should return valid true when" do
|
13
|
+
@invalid = Aceitafacil::Card.new
|
14
|
+
@invalid.valid?.should be_false
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return message erros for fields" do
|
18
|
+
@invalid = Aceitafacil::Card.new
|
19
|
+
@invalid.valid?
|
20
|
+
[:customer_id, :number, :name, :cvv, :exp_date].each do |key|
|
21
|
+
@invalid.errors.messages.keys.should include(key)
|
22
|
+
end
|
23
|
+
end
|
8
24
|
end
|
9
25
|
|
10
26
|
describe "make a remove call" do
|
@@ -3,25 +3,60 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe Aceitafacil::Vendor do
|
6
|
+
let(:bank_params) {
|
7
|
+
{
|
8
|
+
code: "001",
|
9
|
+
agency: "123-4",
|
10
|
+
account_type: 1, # 1 Corrent, 2 Poupança
|
11
|
+
account_number: "1234-5",
|
12
|
+
account_holder_name: "Fulano",
|
13
|
+
account_holder_document_type: 1, # 1 CPF, 2 CNPJ
|
14
|
+
account_holder_document_number: "12345678909"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
6
18
|
let(:vendor_params) {
|
7
19
|
{
|
8
|
-
id: "2", name: "Vendor name", email: "vendor@vendor.com",
|
9
|
-
bank: {
|
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
|
-
}
|
20
|
+
id: "2", name: "Vendor name", email: "vendor@vendor.com", bank: @bank
|
18
21
|
}
|
19
22
|
}
|
20
23
|
|
21
24
|
before do
|
25
|
+
@bank = Aceitafacil::Bank.new(bank_params)
|
22
26
|
@vendor = Aceitafacil::Vendor.new(vendor_params)
|
23
27
|
end
|
24
28
|
|
29
|
+
describe "instatiating a new card" do
|
30
|
+
it "should return valid true when valid? is called" do
|
31
|
+
@vendor = Aceitafacil::Vendor.new
|
32
|
+
@vendor.valid?.should be_false
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return valid true when it is saved" do
|
36
|
+
@vendor = Aceitafacil::Vendor.new
|
37
|
+
@vendor.save.should be_false
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return valid true when it is saved" do
|
41
|
+
@vendor = Aceitafacil::Vendor.new(id: 1, name: "Vendor name", email: "vendor@email.com", bank: nil)
|
42
|
+
@vendor.save.should be_false
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return valid true when it is saved" do
|
46
|
+
@vendor = Aceitafacil::Vendor.new(id: 1, name: "Vendor name", email: "vendor@email.com", bank: Aceitafacil::Bank.new)
|
47
|
+
|
48
|
+
@vendor.save.should be_false
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return message erros for fields" do
|
52
|
+
@vendor = Aceitafacil::Vendor.new
|
53
|
+
@vendor.valid?
|
54
|
+
[:id, :email, :name, :bank].each do |key|
|
55
|
+
@vendor.errors.messages.keys.should include(key)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
25
60
|
describe "fetching existent vendors" do
|
26
61
|
it "should be nil if customer_id is not passed" do
|
27
62
|
@vendor = Aceitafacil::Vendor.find(nil)
|
@@ -54,6 +89,9 @@ describe Aceitafacil::Vendor do
|
|
54
89
|
# describe "making a save call" do
|
55
90
|
# it "should create a new remote vendor" do
|
56
91
|
# response = @vendor.save
|
92
|
+
|
93
|
+
# puts response.body.inspect
|
94
|
+
|
57
95
|
# response.should be_kind_of Net::HTTPSuccess
|
58
96
|
# end
|
59
97
|
# end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,12 @@ require 'fakeweb'
|
|
3
3
|
|
4
4
|
FakeWeb.allow_net_connect = true
|
5
5
|
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.before(:all) do
|
8
|
+
Aceitafacil.clear_data
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
Aceitafacil.setup do |config|
|
7
13
|
# Altere para production ao final dos seus testes
|
8
14
|
config.environment = :test
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wilbert Ribeiro
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.8.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activemodel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.0.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.4
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.4
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: bundler
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,8 +158,8 @@ files:
|
|
130
158
|
- lib/aceitafacil/utils.rb
|
131
159
|
- lib/aceitafacil/vendor.rb
|
132
160
|
- lib/aceitafacil/version.rb
|
133
|
-
- lib/
|
134
|
-
- lib/
|
161
|
+
- lib/generators/aceitafacil/install_generator.rb
|
162
|
+
- lib/generators/templates/aceitafacil.rb
|
135
163
|
- spec/aceitafacil/card_spec.rb
|
136
164
|
- spec/aceitafacil/connection_spec.rb
|
137
165
|
- spec/aceitafacil/payment_spec.rb
|