touggsl 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/touggsl/client.rb +9 -4
- data/lib/touggsl/request_helpers.rb +25 -10
- data/lib/version.rb +1 -1
- data/test/contratarplano.json +28 -0
- data/test/touggsl/test_client.rb +19 -15
- data/test/touggsl/test_version.rb +1 -1
- data/test/touggsl_helper.rb +4 -0
- data/touggsl.gemspec +3 -2
- metadata +4 -3
data/lib/touggsl/client.rb
CHANGED
@@ -47,18 +47,23 @@ class Touggsl::Client
|
|
47
47
|
# * <tt>plan_id</tt> - ID do plano cadastrado na Superlogica
|
48
48
|
# * <tt>client_id</tt> - ID do cliente que deseja contratar o plano
|
49
49
|
# * <tt>contract_id</tt> - ID do contrato. Unico para cada contratacao de plano
|
50
|
-
def hiring_plan(plan_id, client_id, contract_id)
|
51
|
-
response = hiring_plan_for_client(plan_id, client_id, contract_id)
|
50
|
+
def hiring_plan(plan_id, client_id, contract_id, forma_pagamento)
|
51
|
+
response = hiring_plan_for_client(plan_id, client_id, contract_id, forma_pagamento)
|
52
52
|
json = JSON.parse(response)
|
53
53
|
|
54
54
|
status = json["status"]
|
55
55
|
if status == "206"
|
56
56
|
return "Plano ja contratado para o cliente informado."
|
57
57
|
else
|
58
|
-
|
58
|
+
json["data"].each do |d|
|
59
|
+
return d["data"]["link_boleto"]
|
60
|
+
end
|
59
61
|
end
|
60
62
|
end
|
61
|
-
|
63
|
+
|
64
|
+
##
|
65
|
+
# Retorna todos os clientes que estão inadimplentes
|
66
|
+
#
|
62
67
|
def get_inadimplentes
|
63
68
|
clients = []
|
64
69
|
clients_json = JSON.parse(get_clients_inadimplementes)
|
@@ -32,9 +32,20 @@ module Touggsl
|
|
32
32
|
response
|
33
33
|
end
|
34
34
|
|
35
|
-
def create_client(id,
|
36
|
-
|
37
|
-
:body => {'ST_SINCRO_SAC' => id,
|
35
|
+
def create_client(id, nome, nome_fantasia, email = nil, endereco = nil, numero = nil, bairro = nil, cidade = nil, estado = nil, cep = nil, dia_vencimento_sac =0)
|
36
|
+
HTTParty.post("#{Touggsl.get_uri}sacados/put",
|
37
|
+
:body => {'ST_SINCRO_SAC' => id,
|
38
|
+
'ST_NOME_SAC' => nome,
|
39
|
+
'ST_NOMEREF_SAC' => nome_fantasia,
|
40
|
+
'ST_EMAIL_SAC' => email,
|
41
|
+
'ST_DIAVENCIMENTO_SAC' => dia_vencimento_sac,
|
42
|
+
'ST_ENDERECO_SAC' => endereco,
|
43
|
+
'ST_ESTADO_SAC' => estado,
|
44
|
+
'ST_CIDADE_SAC' => cidade,
|
45
|
+
'ST_CEP_SAC' => cep,
|
46
|
+
'ST_NUMERO_SAC' => numero,
|
47
|
+
'ST_BAIRRO_SAC' => bairro},
|
48
|
+
:headers => {'Cookie' => auth.get_cookie})
|
38
49
|
end
|
39
50
|
|
40
51
|
##
|
@@ -48,17 +59,21 @@ module Touggsl
|
|
48
59
|
# * <tt>id_contrato</tt> - a unique ID for contract
|
49
60
|
# * <tt>notification</tt> - 0 to not send notification and 1 to send. Dont send by default
|
50
61
|
# * <tt>quantidade_parcela_adesao</tt> - Number of plots for the plan. By default is 1
|
62
|
+
# * <tt>forma_pagamento</tt> - 0 = boleto.
|
51
63
|
#
|
52
64
|
#
|
53
|
-
def hiring_plan_for_client(plan_id, client_id, id_contrato, notification=0, quantidade_parcelas_adesao=1)
|
65
|
+
def hiring_plan_for_client(plan_id, client_id, id_contrato, notification=0, quantidade_parcelas_adesao=1, forma_pagamento)
|
54
66
|
hiring_at = Time.now.strftime('%m/%d/%Y')
|
55
67
|
HTTParty.post("#{Touggsl.get_uri}planosclientes/put",
|
56
|
-
:body => {'PLANOS' =>
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
68
|
+
:body => {'PLANOS' => {1 => {'identificador' => client_id,
|
69
|
+
'ID_PLANO_PLA' => plan_id,
|
70
|
+
'DT_CONTRATO_PLC' => hiring_at,
|
71
|
+
'ST_IDENTIFICADOR_PLC' => id_contrato,
|
72
|
+
'FL_NOTIFICARCLIENTE' => notification,
|
73
|
+
'QUANT_PARCELAS_ADESAO' => quantidade_parcelas_adesao,
|
74
|
+
'ID_FORMAPAGAMENTO_RECB' => forma_pagamento}}},
|
75
|
+
:headers => {'Cookie' => auth.get_cookie })
|
76
|
+
|
62
77
|
end
|
63
78
|
##
|
64
79
|
# include the authenticator in order to use in future requests
|
data/lib/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"multipleresponse":"1",
|
3
|
+
"status":"200",
|
4
|
+
"msg":"Todos os itens foram processados com sucesso.",
|
5
|
+
"data":[
|
6
|
+
{
|
7
|
+
"status":"200",
|
8
|
+
"msg":"Plano contratado com sucesso.",
|
9
|
+
"data":{
|
10
|
+
"id_sacado_sac":"83",
|
11
|
+
"id_plano_pla":"2",
|
12
|
+
"st_identificador_plc":"tougg_ordens13",
|
13
|
+
"dt_contrato_plc":"11\/08\/2013",
|
14
|
+
"dt_cancelamento_plc":"",
|
15
|
+
"id_planocliente_plc":"69",
|
16
|
+
"fl_trial_plc":"",
|
17
|
+
"dt_trialfim_plc":"",
|
18
|
+
"dt_trialinicio_plc":"",
|
19
|
+
"fl_autocontratar_plc":"0",
|
20
|
+
"id_vendedor_for":"",
|
21
|
+
"st_emailindicacao_plc":"",
|
22
|
+
"columnidname":"2",
|
23
|
+
"link_boleto":"http:\/\/touggweb-001.superlogica.net\/clients\/financeiro\/publico\/cobranca?id=59&publickey=ce4dc5b51dc6b45d15de28c2ba181e3323540adb"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
],
|
27
|
+
"executiontime":"1.2118s"
|
28
|
+
}
|
data/test/touggsl/test_client.rb
CHANGED
@@ -20,7 +20,6 @@ Time.stubs(:now).returns(Time.mktime(2013,11,03))
|
|
20
20
|
auth = Touggsl::Auth
|
21
21
|
auth.login("jack", "secret")
|
22
22
|
@client = Touggsl::Client.new(auth)
|
23
|
-
|
24
23
|
end
|
25
24
|
|
26
25
|
def test_client_should_have_a_auth
|
@@ -30,38 +29,41 @@ Time.stubs(:now).returns(Time.mktime(2013,11,03))
|
|
30
29
|
def test_create_new_client
|
31
30
|
|
32
31
|
stub_request(:post, "http://touggweb-001.superlogica.net/financeiro/atual/sacados/put").
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
with(:body => "ST_SINCRO_SAC=0303030&ST_NOME_SAC=Jack&ST_NOMEREF_SAC=Tougg&ST_EMAIL_SAC=0&ST_DIAVENCIMENTO_SAC=0&ST_ENDERECO_SAC=&ST_ESTADO_SAC=&ST_CIDADE_SAC=&ST_CEP_SAC=&ST_NUMERO_SAC=&ST_BAIRRO_SAC=",
|
33
|
+
:headers => {'Cookie'=>'xpto'}).
|
34
|
+
to_return(:status => 200, :body => TouggHelper.success_create_client, :headers => {})
|
35
|
+
|
36
36
|
|
37
37
|
client_created = @client.create_new_client("0303030", "Jack", "Tougg")
|
38
38
|
assert_equal "200", client_created
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_hiring_plan
|
42
|
-
stub_request(:post, "http://touggweb-001.superlogica.net/financeiro/atual/planosclientes/put").
|
43
|
-
with(:body => "PLANOS[1][identificador]=10&PLANOS[1][ID_PLANO_PLA]=2&PLANOS[1][DT_CONTRATO_PLC]=11%2F03%2F2013&PLANOS[1][ST_IDENTIFICADOR_PLC]=1000&PLANOS[1][FL_NOTIFICARCLIENTE]=0&PLANOS[1][QUANT_PARCELAS_ADESAO]=1",
|
44
|
-
:headers => {'Cookie'=>'xpto'}).
|
45
|
-
to_return(:status => 200, :body => TouggHelper::success_hiring_plan, :headers => {})
|
46
|
-
|
47
42
|
|
43
|
+
stub_request(:post, "http://touggweb-001.superlogica.net/financeiro/atual/planosclientes/put").
|
44
|
+
with(:body => "PLANOS[1][identificador]=10&PLANOS[1][ID_PLANO_PLA]=2&PLANOS[1][DT_CONTRATO_PLC]=11%2F03%2F2013&PLANOS[1][ST_IDENTIFICADOR_PLC]=1000&PLANOS[1][FL_NOTIFICARCLIENTE]=0&PLANOS[1][QUANT_PARCELAS_ADESAO]=1&PLANOS[1][ID_FORMAPAGAMENTO_RECB]=0",
|
45
|
+
:headers => {'Cookie'=>'xpto'}).
|
46
|
+
to_return(:status => 200, :body => TouggHelper::contratar_plano,:headers => {})
|
47
|
+
|
48
48
|
plan_id = 2
|
49
49
|
client_id = 10
|
50
50
|
contract_id = 1000
|
51
|
-
|
52
|
-
|
51
|
+
forma_pagamento = 0
|
52
|
+
plan = @client.hiring_plan(plan_id, client_id, contract_id, forma_pagamento)
|
53
|
+
assert_equal "http://touggweb-001.superlogica.net/clients/financeiro/publico/cobranca?id=59&publickey=ce4dc5b51dc6b45d15de28c2ba181e3323540adb", plan
|
53
54
|
end
|
54
55
|
|
55
56
|
def test_try_hiring_plan_again
|
56
57
|
stub_request(:post, "http://touggweb-001.superlogica.net/financeiro/atual/planosclientes/put").
|
57
|
-
|
58
|
-
|
59
|
-
|
58
|
+
with(:body => "PLANOS[1][identificador]=10&PLANOS[1][ID_PLANO_PLA]=2&PLANOS[1][DT_CONTRATO_PLC]=11%2F03%2F2013&PLANOS[1][ST_IDENTIFICADOR_PLC]=1000&PLANOS[1][FL_NOTIFICARCLIENTE]=0&PLANOS[1][QUANT_PARCELAS_ADESAO]=1&PLANOS[1][ID_FORMAPAGAMENTO_RECB]=0",
|
59
|
+
:headers => {'Cookie'=>'xpto'}).
|
60
|
+
to_return(:status => 200, :body => TouggHelper::hiring_plan_again, :headers => {})
|
60
61
|
|
61
62
|
plan_id = 2
|
62
63
|
client_id = 10
|
63
64
|
contract_id = 1000
|
64
|
-
|
65
|
+
forma_pagamento = 0
|
66
|
+
plan = @client.hiring_plan(plan_id, client_id, contract_id, forma_pagamento)
|
65
67
|
assert_equal "Plano ja contratado para o cliente informado.", plan
|
66
68
|
end
|
67
69
|
|
@@ -79,4 +81,6 @@ Time.stubs(:now).returns(Time.mktime(2013,11,03))
|
|
79
81
|
assert_equal segunda_via_cobranca, clients[0].segunda_via_cobranca
|
80
82
|
end
|
81
83
|
|
84
|
+
|
85
|
+
|
82
86
|
end
|
data/test/touggsl_helper.rb
CHANGED
data/touggsl.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "touggsl"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Edipo Luis Federle", "Dyan Carlos Carra"]
|
12
|
-
s.date = "2013-11-
|
12
|
+
s.date = "2013-11-09"
|
13
13
|
s.description = "Ruby code to access superlogica API"
|
14
14
|
s.email = ["edipofederle@gmail.com", "dyancarra@gmail.com"]
|
15
15
|
s.executables = ["touggsl"]
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/touggsl/models/client.rb",
|
31
31
|
"lib/touggsl/request_helpers.rb",
|
32
32
|
"lib/version.rb",
|
33
|
+
"test/contratarplano.json",
|
33
34
|
"test/helper.rb",
|
34
35
|
"test/inadimplentes.json",
|
35
36
|
"test/touggsl/test_auth.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: touggsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.4'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-11-
|
13
|
+
date: 2013-11-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: shoulda
|
@@ -163,6 +163,7 @@ files:
|
|
163
163
|
- lib/touggsl/models/client.rb
|
164
164
|
- lib/touggsl/request_helpers.rb
|
165
165
|
- lib/version.rb
|
166
|
+
- test/contratarplano.json
|
166
167
|
- test/helper.rb
|
167
168
|
- test/inadimplentes.json
|
168
169
|
- test/touggsl/test_auth.rb
|
@@ -186,7 +187,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
187
|
version: '0'
|
187
188
|
segments:
|
188
189
|
- 0
|
189
|
-
hash:
|
190
|
+
hash: -2138812775724009612
|
190
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
192
|
none: false
|
192
193
|
requirements:
|