midas_client 0.2.1 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +27 -3
- data/lib/midas_client/endpoints.rb +7 -1
- data/lib/midas_client/query.rb +190 -20
- data/lib/midas_client/request.rb +15 -0
- data/lib/midas_client/subscription.rb +9 -5
- data/lib/midas_client/transaction.rb +23 -0
- data/lib/midas_client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81c854614d06fb0820ef6fde44ea13ee781266c7
|
4
|
+
data.tar.gz: 1d40a8f4350905e685f539f619380fdfac92b7e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9ee9daec5887385a65edccca415957bcef666226a1f6531adc80a42798f8da574b9da52b3d78da2147faad71287bb5a9dd5e1f2dfa8ae7a0fa035250a9a951e
|
7
|
+
data.tar.gz: 61ffb8f7cda498954e0e169098ba0de225034c3d7446292da61bebb2e8e20d0e1209e961eea2795339447108956fd7fac4a45ca33eefd325573381a54033dad5
|
data/README.md
CHANGED
@@ -33,8 +33,10 @@ Use client as follow:
|
|
33
33
|
|
34
34
|
Request
|
35
35
|
|
36
|
-
$
|
37
|
-
$ transaction.card_store({"externalId":"teste_midas_client_00002", "pan":"5529525900844124", "expirationMonth":"01", "expirationYear":"2021", "holderName":"TESTE MIDAS CLIENT", "customer":{ "documentType":"CPF", "documentNumber":"36549450152"}})
|
36
|
+
$ request = MidasClient::Request.new('testes-01','/eFRsg8RLne+I0GlECQofYvnsDfb0w==', 'DEVELOPMENT')
|
37
|
+
$ request.transaction.card_store({"externalId":"teste_midas_client_00002", "pan":"5529525900844124", "expirationMonth":"01", "expirationYear":"2021", "holderName":"TESTE MIDAS CLIENT", "customer":{ "documentType":"CPF", "documentNumber":"36549450152"}})
|
38
|
+
$ request.subscription.cancel_subscription("subscription_token_00002")
|
39
|
+
$ request.query.list_customers
|
38
40
|
|
39
41
|
Response
|
40
42
|
|
@@ -42,7 +44,29 @@ Response
|
|
42
44
|
$ [17/05/2017 20:48:06.103][RESPONSE] {:result=>{:success=>true, :code=>"010", :message=>"O cartao jah foi armazenado anteriormente"}, :brand=>"MASTER", :cardToken=>"f887d732863eb3ef2e45c0bd8b57ed33"}
|
43
45
|
|
44
46
|
## Change Releases
|
45
|
-
VERSION - 0.2.
|
47
|
+
VERSION - 0.2.4 - 2017/11/01
|
48
|
+
|
49
|
+
- Refactoring QUERIES CONSTANT to QUERY
|
50
|
+
- Query to list creditcards from a Point of Sale (MidasClient::Query.list_creditcards)
|
51
|
+
- Query to list creditcards from user's document number (MidasClient::Transation.query_user_cards)
|
52
|
+
- Query to list transactions by an array of external ids (MidasClient::Query.by_external_ids)
|
53
|
+
- Query to list transactions by an array of transaction tokens (MidasClient::Query.by_transaction_tokens)
|
54
|
+
- Query to list customers from de POint of Sale (MidasClient::Query.list_customers)
|
55
|
+
- Access attributes at Request to acess all subclasses from Request as singleton methods
|
56
|
+
- Refactoring class Queries name to Query
|
57
|
+
- read.me
|
58
|
+
|
59
|
+
VERSION - 0.2.3 - 2017/10/25
|
60
|
+
|
61
|
+
- Bug fix at MidasClient::Subscription.subscription_update
|
62
|
+
- read.me
|
63
|
+
|
64
|
+
VERSION - 0.2.2 - 2017/10/16
|
65
|
+
|
66
|
+
- Query to return all subscritions for a Point Of Sale at module Query.
|
67
|
+
- read.me
|
68
|
+
|
69
|
+
VERSION - 0.2.1 - 2017/10/11
|
46
70
|
|
47
71
|
- Changing Development API endpoint
|
48
72
|
- read.me
|
@@ -43,7 +43,8 @@ module MidasClient
|
|
43
43
|
cancel: '/transaction/creditcard/{transactionToken}/cancel',
|
44
44
|
refund: '/transaction/creditcard/{transactionToken}/refund',
|
45
45
|
query_by_transaction: '/transaction/{transactionToken}',
|
46
|
-
callback: 'http://matricula.crossfitlendarios.com.br/callback'
|
46
|
+
callback: 'http://matricula.crossfitlendarios.com.br/callback',
|
47
|
+
cards_by_user: '/customer/{documentType}/{documentNumber}/creditcard',
|
47
48
|
}
|
48
49
|
|
49
50
|
SUBSCRIPTIONS = {
|
@@ -62,7 +63,12 @@ module MidasClient
|
|
62
63
|
QUERIES = {
|
63
64
|
context: '/midas-query/v2',
|
64
65
|
by_external_id: '/transactions/external-id/{externalId}',
|
66
|
+
by_external_ids: '/transactions/external-ids',
|
67
|
+
by_transaction_tokens: '/transactions/transaction-tokens',
|
65
68
|
by_period: '/transactions?startDate={startDate}&endDate={endDate}&status={status}',
|
69
|
+
subscriptions: "/subscriptions?status={status}",
|
70
|
+
creditcards: '/creditcards',
|
71
|
+
customers: '/customers'
|
66
72
|
}
|
67
73
|
|
68
74
|
MANAGEMENTS = {
|
data/lib/midas_client/query.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
module MidasClient
|
2
|
-
class
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
class Query < Request
|
3
|
+
|
4
|
+
#= This method performs a query by a range date.
|
5
|
+
# This is a is synchronous operation, using method GET
|
6
|
+
#
|
7
|
+
# Params:
|
8
|
+
# start_date: date format YYYY-MM-DD
|
9
|
+
# send_date: date format YYYY-MM-DD
|
10
|
+
#
|
11
|
+
#
|
12
|
+
# Response:
|
13
|
+
# result: {
|
14
|
+
# success: true/false
|
15
|
+
# code: "XXX"
|
16
|
+
# message: "Some message to you"
|
17
|
+
# }
|
18
|
+
def transaction_by_date(start_date=(Date.today - 7).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'), status = nil)
|
19
19
|
log "Entrei em transaction_by_date"
|
20
20
|
# define o método de envio da requisição
|
21
21
|
method = :get
|
@@ -44,8 +44,6 @@ module MidasClient
|
|
44
44
|
response[:transactions] = transactions
|
45
45
|
|
46
46
|
response
|
47
|
-
end
|
48
|
-
|
49
47
|
end
|
50
48
|
|
51
49
|
#= This method performs a query by a specific transaction's identifier, called external ID.
|
@@ -61,7 +59,9 @@ module MidasClient
|
|
61
59
|
# code: "XXX"
|
62
60
|
# message: "Some message to you"
|
63
61
|
# }
|
64
|
-
def
|
62
|
+
def by_external_id(externalId)
|
63
|
+
log "Entrei em by_external_id"
|
64
|
+
|
65
65
|
# define o método de envio da requisição
|
66
66
|
method = :get
|
67
67
|
|
@@ -70,4 +70,174 @@ module MidasClient
|
|
70
70
|
|
71
71
|
request(method, endpoint, login, password, {})
|
72
72
|
end
|
73
|
+
|
74
|
+
#= This method performs a query by an array of transaction's identifier.
|
75
|
+
# This is a is synchronous operation, using method GET
|
76
|
+
#
|
77
|
+
# Params:
|
78
|
+
# none
|
79
|
+
#
|
80
|
+
#
|
81
|
+
# Response:
|
82
|
+
# result: {
|
83
|
+
# success: true/false
|
84
|
+
# code: "XXX"
|
85
|
+
# message: "Some message to you"
|
86
|
+
# }
|
87
|
+
def by_external_ids(externalIds = [])
|
88
|
+
log "Entrei em by_external_ids"
|
89
|
+
|
90
|
+
# define o método de envio da requisição
|
91
|
+
method = :post
|
92
|
+
|
93
|
+
# monta a URL de chamada da requisição
|
94
|
+
endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_external_ids]
|
95
|
+
|
96
|
+
request(method, endpoint, login, password, {externalIds: externalIds})
|
97
|
+
end
|
98
|
+
|
99
|
+
#= This method performs a query by an array of transaction's token.
|
100
|
+
# This is a is synchronous operation, using method GET
|
101
|
+
#
|
102
|
+
# Params:
|
103
|
+
# none
|
104
|
+
#
|
105
|
+
#
|
106
|
+
# Response:
|
107
|
+
# result: {
|
108
|
+
# success: true/false
|
109
|
+
# code: "XXX"
|
110
|
+
# message: "Some message to you"
|
111
|
+
# }
|
112
|
+
def by_transaction_tokens(transactionTokens = [])
|
113
|
+
log "Entrei em by_external_ids"
|
114
|
+
|
115
|
+
# define o método de envio da requisição
|
116
|
+
method = :post
|
117
|
+
|
118
|
+
# monta a URL de chamada da requisição
|
119
|
+
endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_transaction_tokens]
|
120
|
+
|
121
|
+
request(method, endpoint, login, password, {transactionTokens: transactionTokens})
|
122
|
+
end
|
123
|
+
|
124
|
+
#= This method performs a query to return all subscriptions for a Point Of Sale by status
|
125
|
+
# This is a is synchronous operation, using method GET
|
126
|
+
#
|
127
|
+
# Params:
|
128
|
+
# status: ACTIVE/CANCELLED
|
129
|
+
#
|
130
|
+
# Response:
|
131
|
+
# result: {
|
132
|
+
# success: true/false
|
133
|
+
# code: "XXX"
|
134
|
+
# message: "Some message to you"
|
135
|
+
# }
|
136
|
+
def subscriptions(status = nil)
|
137
|
+
log "Entrei em subscriptions"
|
138
|
+
# define o método de envio da requisição
|
139
|
+
method = :get
|
140
|
+
|
141
|
+
# monta a URL de chamada da requisição
|
142
|
+
endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:subscriptions]
|
143
|
+
|
144
|
+
# monta os parâmetros da requisição na url
|
145
|
+
endpoint = status.blank? ? endpoint.gsub("status={status}", '') : endpoint.gsub("{status}", status)
|
146
|
+
|
147
|
+
# faz a chamada a plataforma de pagamento (MIDAS)
|
148
|
+
response = request(method, endpoint, self.login, self.password, {})
|
149
|
+
|
150
|
+
result = response[:result]
|
151
|
+
pagging = response[:pagging]
|
152
|
+
if response[:subscriptions].kind_of?(Array) || response[:subscriptions].blank?
|
153
|
+
subscriptions = response[:subscriptions]
|
154
|
+
else
|
155
|
+
subscription_array = []
|
156
|
+
subscription_array << response[:subscriptions]
|
157
|
+
subscriptions = subscription_array
|
158
|
+
end
|
159
|
+
|
160
|
+
response[:result] = result
|
161
|
+
response[:pagging] = pagging
|
162
|
+
response[:subscriptions] = subscriptions
|
163
|
+
|
164
|
+
response
|
165
|
+
end
|
166
|
+
|
167
|
+
#= This method performs a query to return all creditcards stored for a Point Of Sale
|
168
|
+
# This is a is synchronous operation, using method GET
|
169
|
+
#
|
170
|
+
# Params:
|
171
|
+
# none
|
172
|
+
#
|
173
|
+
# Response:
|
174
|
+
# result: {
|
175
|
+
# success: true/false
|
176
|
+
# code: "XXX"
|
177
|
+
# message: "Some message to you"
|
178
|
+
# }
|
179
|
+
# creditCards: [
|
180
|
+
# {
|
181
|
+
# brand: "MASTER",
|
182
|
+
# panLastDigits": "4832",
|
183
|
+
# expirationMonth": 10,
|
184
|
+
# expirationYear": 2019,
|
185
|
+
# holderName": "Nome Portador",
|
186
|
+
# customer: {
|
187
|
+
# documentType: "CPF",
|
188
|
+
# documentNumber: "12345678900"
|
189
|
+
# },
|
190
|
+
# token: "b7553c62bc93ed0708b4behfcf28f3592"
|
191
|
+
# }
|
192
|
+
def list_creditcards()
|
193
|
+
log "Entrei em list_creditcards"
|
194
|
+
# define o método de envio da requisição
|
195
|
+
method = :get
|
196
|
+
|
197
|
+
# monta a URL de chamada da requisição
|
198
|
+
endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:creditcards]
|
199
|
+
|
200
|
+
# faz a chamada a plataforma de pagamento (MIDAS)
|
201
|
+
request(method, endpoint, self.login, self.password, {})
|
202
|
+
end
|
203
|
+
|
204
|
+
#= This method performs a query to return all creditcards stored for a Point Of Sale
|
205
|
+
# This is a is synchronous operation, using method GET
|
206
|
+
#
|
207
|
+
# Params:
|
208
|
+
# none
|
209
|
+
#
|
210
|
+
# Response:
|
211
|
+
# result: {
|
212
|
+
# success: true/false
|
213
|
+
# code: "XXX"
|
214
|
+
# message: "Some message to you"
|
215
|
+
# }
|
216
|
+
# creditCards: [
|
217
|
+
# {
|
218
|
+
# brand: "MASTER",
|
219
|
+
# panLastDigits": "4832",
|
220
|
+
# expirationMonth": 10,
|
221
|
+
# expirationYear": 2019,
|
222
|
+
# holderName": "Nome Portador",
|
223
|
+
# customer: {
|
224
|
+
# documentType: "CPF",
|
225
|
+
# documentNumber: "12345678900"
|
226
|
+
# },
|
227
|
+
# token: "b7553c62bc93ed0708b4behfcf28f3592"
|
228
|
+
# }
|
229
|
+
def list_customers()
|
230
|
+
log "Entrei em list_customers"
|
231
|
+
# define o método de envio da requisição
|
232
|
+
method = :get
|
233
|
+
|
234
|
+
# monta a URL de chamada da requisição
|
235
|
+
endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:customers]
|
236
|
+
|
237
|
+
# faz a chamada a plataforma de pagamento (MIDAS)
|
238
|
+
request(method, endpoint, self.login, self.password, {})
|
239
|
+
end
|
240
|
+
|
241
|
+
|
242
|
+
end
|
73
243
|
end
|
data/lib/midas_client/request.rb
CHANGED
@@ -5,6 +5,9 @@ module MidasClient
|
|
5
5
|
include EndPoints
|
6
6
|
|
7
7
|
attr_accessor :login, :password, :environment
|
8
|
+
attr_accessor :transaction
|
9
|
+
attr_accessor :subscription
|
10
|
+
attr_accessor :query
|
8
11
|
|
9
12
|
def initialize(login=nil, password=nil, environment='DEVELOPMENT', option={})
|
10
13
|
@login = login
|
@@ -87,5 +90,17 @@ module MidasClient
|
|
87
90
|
response
|
88
91
|
end
|
89
92
|
|
93
|
+
def transaction
|
94
|
+
@transaction ||= Transaction.new(login, password, environment)
|
95
|
+
end
|
96
|
+
|
97
|
+
def subscription
|
98
|
+
@subscription ||= Subscription.new(login, password, environment)
|
99
|
+
end
|
100
|
+
|
101
|
+
def query
|
102
|
+
@query ||= Query.new(login, password, environment)
|
103
|
+
end
|
104
|
+
|
90
105
|
end
|
91
106
|
end
|
@@ -81,7 +81,7 @@ module MidasClient
|
|
81
81
|
#
|
82
82
|
# Response:
|
83
83
|
# result: {
|
84
|
-
# success: true/
|
84
|
+
# success: true/falseb0FIYhr/xCvGFMuR1Wg059X/0cqwLg==
|
85
85
|
# code: "XXX"
|
86
86
|
# message: "Some message to you"
|
87
87
|
# }
|
@@ -102,9 +102,11 @@ module MidasClient
|
|
102
102
|
# Params:
|
103
103
|
# subscriptionToken: querystring (Subscription unique identification generated by our
|
104
104
|
# gateway and received in the subscription's creation response)
|
105
|
-
#
|
105
|
+
# params: {
|
106
|
+
# amount: number (Only integer numbers, with the last two digits representing the cents.
|
106
107
|
# For example: 100 is equivalent to R$ 1,00)
|
107
|
-
#
|
108
|
+
# callbackUrl: string - URL to receive the result for each invoice charge
|
109
|
+
# }
|
108
110
|
#
|
109
111
|
# Response:
|
110
112
|
# result: {
|
@@ -123,10 +125,12 @@ module MidasClient
|
|
123
125
|
response = request(method, endpoint, self.login, self.password, params)
|
124
126
|
|
125
127
|
# recupera a lista de invoices da assinatura para chamar o método de atualização de cada invoice.
|
126
|
-
|
128
|
+
response_invoices = subscription_invoices(subscription_token)
|
129
|
+
result = response_invoices[:result]
|
130
|
+
invoices = response_invoices[:invoices]
|
127
131
|
|
128
132
|
# filtra apenas as invoices em aberto
|
129
|
-
opened_invoices = invoices.select{|s| s[:status] == 'OPEN'}
|
133
|
+
opened_invoices = invoices.select{|s| s[:status] == 'OPEN'} unless invoices.blank?
|
130
134
|
|
131
135
|
# percorre cada uma das invoices abertas e chama o método de atualização
|
132
136
|
opened_invoices.each do |inv|
|
@@ -377,5 +377,28 @@ module MidasClient
|
|
377
377
|
request(method, endpoint, login, password, {})
|
378
378
|
end
|
379
379
|
|
380
|
+
#= This method performs a query to list all creditcards form a user.
|
381
|
+
# This is a is synchronous operation, using method GET
|
382
|
+
#
|
383
|
+
# Params:
|
384
|
+
# documentType: string (CPF or CNPJ)
|
385
|
+
# documentNumber: string
|
386
|
+
#
|
387
|
+
#
|
388
|
+
# Response:
|
389
|
+
# result: {
|
390
|
+
# success: true/false
|
391
|
+
# code: "XXX"
|
392
|
+
# message: "Some message to you"
|
393
|
+
# }
|
394
|
+
def query_user_cards(document_type='CPF', document_number)
|
395
|
+
# define o método de envio da requisição
|
396
|
+
method = :get
|
397
|
+
|
398
|
+
# monta a URL de chamada da requisição
|
399
|
+
endpoint = get_env[:url] + EndPoints::OPERATIONS[:context] + EndPoints::OPERATIONS[:cards_by_user].gsub('{documentType}', document_type).gsub('{documentNumber}', document_number)
|
400
|
+
|
401
|
+
request(method, endpoint, login, password, {})
|
402
|
+
end
|
380
403
|
end
|
381
404
|
end
|
data/lib/midas_client/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: midas_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Andre Oliveira
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|