midas_client 0.2.1 → 0.2.4
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 +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
|