midas_client 0.2.4 → 0.2.14

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.
@@ -1,243 +1,684 @@
1
1
  module MidasClient
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
- log "Entrei em transaction_by_date"
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
+ # status: string
11
+ # type: string DIRECT/RECURRENT
12
+ #
13
+ # Response:
14
+ # result: {
15
+ # success: true/false
16
+ # code: "XXX"
17
+ # message: "Some message to you"
18
+ # }
19
+ def transaction_by_date(start_date=(Date.today - 7).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'), status = nil, type=nil)
20
+ log "Entrei em transaction_by_date"
21
+ # define o método de envio da requisição
22
+ method = :get
23
+
24
+ # monta a URL de chamada da requisição
25
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_period]
26
+ endpoint = endpoint.gsub("{startDate}", start_date).gsub("{endDate}", end_date)
27
+
28
+ # monta o parâmetro status na requisição da url
29
+ endpoint = status.blank? ? endpoint.gsub("&status={status}", '') : endpoint.gsub("{status}", status)
30
+
31
+ # monta o parâmetro type na requisição da url
32
+ endpoint = type.blank? ? endpoint.gsub("&type={type}", '') : endpoint.gsub("{type}", type)
33
+
34
+ # faz a chamada a plataforma de pagamento (MIDAS)
35
+ response = request(method, endpoint, self.login, self.password, {})
36
+
37
+ result = response[:result]
38
+ pagging = response[:pagging]
39
+ if response[:transactions].kind_of?(Array) || response[:transactions].blank?
40
+ transactions = response[:transactions]
41
+ else
42
+ transaction_array = []
43
+ transaction_array << response[:transactions]
44
+ transactions = transaction_array
45
+ end
46
+
47
+ response[:result] = result
48
+ response[:pagging] = pagging
49
+ response[:transactions] = transactions
50
+
51
+ response
52
+ end
53
+
54
+ #= This method performs a query by a specific transaction's identifier, called external ID.
55
+ # This is a is synchronous operation, using method GET
56
+ #
57
+ # Params:
58
+ # transactionToken: string (Transaction unique identification generated by customer)
59
+ #
60
+ #
61
+ # Response:
62
+ # result: {
63
+ # success: true/false
64
+ # code: "XXX"
65
+ # message: "Some message to you"
66
+ # }
67
+ def by_external_id(externalId)
68
+ log "Entrei em by_external_id"
69
+
70
+ # define o método de envio da requisição
71
+ method = :get
72
+
73
+ # monta a URL de chamada da requisição
74
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_external_id].gsub('{externalId}', externalId)
75
+
76
+ request(method, endpoint, login, password, {})
77
+ end
78
+
79
+ #= This method performs a query by an array of transaction's identifier.
80
+ # This is a is synchronous operation, using method GET
81
+ #
82
+ # Params:
83
+ # none
84
+ #
85
+ #
86
+ # Response:
87
+ # result: {
88
+ # success: true/false
89
+ # code: "XXX"
90
+ # message: "Some message to you"
91
+ # }
92
+ def by_external_ids(externalIds = [])
93
+ log "Entrei em by_external_ids"
94
+
95
+ # define o método de envio da requisição
96
+ method = :post
97
+
98
+ # monta a URL de chamada da requisição
99
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_external_ids]
100
+
101
+ request(method, endpoint, login, password, {externalIds: externalIds})
102
+ end
103
+
104
+ #= This method performs a query by an array of transaction's token.
105
+ # This is a is synchronous operation, using method GET
106
+ #
107
+ # Params:
108
+ # none
109
+ #
110
+ #
111
+ # Response:
112
+ # result: {
113
+ # success: true/false
114
+ # code: "XXX"
115
+ # message: "Some message to you"
116
+ # }
117
+ def by_transaction_tokens(transactionTokens = [])
118
+ log "Entrei em by_external_ids"
119
+
120
+ # define o método de envio da requisição
121
+ method = :post
122
+
123
+ # monta a URL de chamada da requisição
124
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_transaction_tokens]
125
+
126
+ request(method, endpoint, login, password, {transactionTokens: transactionTokens})
127
+ end
128
+
129
+ #= This method performs a query to return all subscriptions for a Point Of Sale by status
130
+ # This is a is synchronous operation, using method GET
131
+ #
132
+ # Params:
133
+ # status: ACTIVE/CANCELLED
134
+ #
135
+ # Response:
136
+ # result: {
137
+ # success: true/false
138
+ # code: "XXX"
139
+ # message: "Some message to you"
140
+ # }
141
+ def subscriptions(status = nil)
142
+ log "Entrei em subscriptions"
20
143
  # define o método de envio da requisição
21
144
  method = :get
22
145
 
23
146
  # monta a URL de chamada da requisição
24
- endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_period].gsub("{startDate}", start_date).gsub("{endDate}", end_date)
147
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:subscriptions]
25
148
 
26
149
  # monta os parâmetros da requisição na url
27
- endpoint = status.blank? ? endpoint.gsub("{status}", '') : endpoint.gsub("{status}", status)
150
+ endpoint = status.blank? ? endpoint.gsub("?status={status}", '') : endpoint.gsub("{status}", status)
151
+
152
+ # faz a chamada a plataforma de pagamento (MIDAS)
153
+ response = request(method, endpoint, self.login, self.password, {})
154
+
155
+ result = response[:result]
156
+ pagging = response[:pagging]
157
+ if response[:subscriptions].kind_of?(Array) || response[:subscriptions].blank?
158
+ subscriptions = response[:subscriptions]
159
+ else
160
+ subscription_array = []
161
+ subscription_array << response[:subscriptions]
162
+ subscriptions = subscription_array
163
+ end
164
+
165
+ response[:result] = result
166
+ response[:pagging] = pagging
167
+ response[:subscriptions] = subscriptions
168
+
169
+ response
170
+ end
171
+
172
+ #= This method performs a query to return all invoices for a Point Of Sale by a period (by expirationDate) and status
173
+ # This is a is synchronous operation, using method GET
174
+ #
175
+ # Params:
176
+ # start_date: YYYY-MM-DD
177
+ # end_date: YYYY-MM-DD
178
+ # status: PAID/DENIED/RESERVED/CANCELLED
179
+ #
180
+ # Response:
181
+ # result: {
182
+ # success: true/false
183
+ # code: "XXX"
184
+ # message: "Some message to you"
185
+ # }
186
+ def invoices_by_expiration_date(start_date=(Date.today - 7).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'), status = 'PAID')
187
+ log "Entrei em invoices"
188
+ # define o método de envio da requisição
189
+ method = :get
190
+
191
+ # monta a URL de chamada da requisição
192
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:invoices_by_expiration_date]
193
+
194
+ # monta a URL de chamada da requisição
195
+ endpoint = endpoint .gsub("{startDate}", start_date).gsub("{endDate}", end_date)
196
+
197
+ # monta o parâmetro status na requisição da url
198
+ endpoint = status.blank? ? endpoint.gsub("&status={status}", '') : endpoint.gsub("{status}", status)
28
199
 
29
200
  # faz a chamada a plataforma de pagamento (MIDAS)
30
201
  response = request(method, endpoint, self.login, self.password, {})
31
202
 
32
203
  result = response[:result]
33
204
  pagging = response[:pagging]
34
- if response[:transactions].kind_of?(Array) || response[:transactions].blank?
35
- transactions = response[:transactions]
205
+ if response[:invoices].kind_of?(Array) || response[:invoices].blank?
206
+ invoices = response[:invoices]
207
+ else
208
+ invoice_array = []
209
+ invoice_array << response[:invoices]
210
+ invoices = invoice_array
211
+ end
212
+
213
+ response[:result] = result
214
+ response[:pagging] = pagging
215
+ response[:invoices] = invoices
216
+
217
+ response
218
+ end
219
+
220
+ #= This method performs a query to return all invoices for a Point Of Sale by a period (by paymentDate) and status
221
+ # This is a is synchronous operation, using method GET
222
+ #
223
+ # Params:
224
+ # start_date: YYYY-MM-DD
225
+ # end_date: YYYY-MM-DD
226
+ # status: PAID/DENIED/RESERVED/CANCELLED
227
+ #
228
+ # Response:
229
+ # result: {
230
+ # success: true/false
231
+ # code: "XXX"
232
+ # message: "Some message to you"
233
+ # }
234
+ def invoices_by_payment_date(start_date=(Date.today - 7).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'), status = 'PAID')
235
+ log "Entrei em invoices"
236
+ # define o método de envio da requisição
237
+ method = :get
238
+
239
+ # monta a URL de chamada da requisição
240
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:invoices_by_payment_date]
241
+
242
+ # monta a URL de chamada da requisição
243
+ endpoint = endpoint .gsub("{startDate}", start_date).gsub("{endDate}", end_date)
244
+
245
+ # monta o parâmetro status na requisição da url
246
+ endpoint = status.blank? ? endpoint.gsub("&status={status}", '') : endpoint.gsub("{status}", status)
247
+
248
+ # faz a chamada a plataforma de pagamento (MIDAS)
249
+ response = request(method, endpoint, self.login, self.password, {})
250
+
251
+ result = response[:result]
252
+ pagging = response[:pagging]
253
+ if response[:invoices].kind_of?(Array) || response[:invoices].blank?
254
+ invoices = response[:invoices]
255
+ else
256
+ invoice_array = []
257
+ invoice_array << response[:invoices]
258
+ invoices = invoice_array
259
+ end
260
+
261
+ response[:result] = result
262
+ response[:pagging] = pagging
263
+ response[:invoices] = invoices
264
+
265
+ response
266
+ end
267
+
268
+ #= This method performs a query to return all creditcards stored for a Point Of Sale
269
+ # This is a is synchronous operation, using method GET
270
+ #
271
+ # Params:
272
+ # none
273
+ #
274
+ # Response:
275
+ # result: {
276
+ # success: true/false
277
+ # code: "XXX"
278
+ # message: "Some message to you"
279
+ # }
280
+ # creditCards: [
281
+ # {
282
+ # brand: "MASTER",
283
+ # panLastDigits": "4832",
284
+ # expirationMonth": 10,
285
+ # expirationYear": 2019,
286
+ # holderName": "Nome Portador",
287
+ # customer: {
288
+ # documentType: "CPF",
289
+ # documentNumber: "12345678900"
290
+ # },
291
+ # token: "b7553c62bc93ed0708b4behfcf28f3592"
292
+ # }
293
+ def list_creditcards()
294
+ log "Entrei em list_creditcards"
295
+ # define o método de envio da requisição
296
+ method = :get
297
+
298
+ # monta a URL de chamada da requisição
299
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:creditcards]
300
+
301
+ # faz a chamada a plataforma de pagamento (MIDAS)
302
+ request(method, endpoint, self.login, self.password, {})
303
+ end
304
+
305
+ #= This method performs a query to return all creditcards stored for a Point Of Sale
306
+ # This is a is synchronous operation, using method GET
307
+ #
308
+ # Params:
309
+ # none
310
+ #
311
+ # Response:
312
+ # result: {
313
+ # success: true/false
314
+ # code: "XXX"
315
+ # message: "Some message to you"
316
+ # }
317
+ # creditCards: [
318
+ # {
319
+ # brand: "MASTER",
320
+ # panLastDigits": "4832",
321
+ # expirationMonth": 10,
322
+ # expirationYear": 2019,
323
+ # holderName": "Nome Portador",
324
+ # customer: {
325
+ # documentType: "CPF",
326
+ # documentNumber: "12345678900"
327
+ # },
328
+ # token: "b7553c62bc93ed0708b4behfcf28f3592"
329
+ # }
330
+ def list_customers()
331
+ log "Entrei em list_customers"
332
+ # define o método de envio da requisição
333
+ method = :get
334
+
335
+ # monta a URL de chamada da requisição
336
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:customers]
337
+
338
+ # faz a chamada a plataforma de pagamento (MIDAS)
339
+ request(method, endpoint, self.login, self.password, {})
340
+ end
341
+
342
+ #= This method performs a query by a specific customer's document type and number.
343
+ # This is a is synchronous operation, using method GET
344
+ #
345
+ # Params:
346
+ # documentType: string (CPF/CNPJ)
347
+ # documentNumeber: number
348
+ #
349
+ # Response:
350
+ # result: {
351
+ # success: true/false
352
+ # code: "XXX"
353
+ # message: "Some message to you"
354
+ # }
355
+ def transactions_by_customer(documentType='CPF', documentNumber='', status = nil)
356
+ log "transactions_by_customer"
357
+
358
+ # define o método de envio da requisição
359
+ method = :get
360
+
361
+ # monta a URL de chamada da requisição
362
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:transactions_by_customer].gsub('{documentType}', documentType).gsub('{documentNumber}', sanitized_document_number(documentNumber))
363
+
364
+ # monta o parâmetro status na requisição da url
365
+ endpoint = status.blank? ? endpoint.gsub("&status={status}", '') : endpoint.gsub("{status}", status)
366
+
367
+ request(method, endpoint, login, password, {})
368
+ end
369
+
370
+ #= This method performs a query by a specific customer's document type and number and return all subscriptions from
371
+ #= the user in the plataform.
372
+ #
373
+ # This is a is synchronous operation, using method GET
374
+ #
375
+ # Params:
376
+ # documentType: string (CPF/CNPJ)
377
+ # documentNumeber: number
378
+ #
379
+ # Response:
380
+ # result: {
381
+ # success: true/false
382
+ # code: "XXX"
383
+ # message: "Some message to you"
384
+ # }
385
+ def subscriptions_by_customer(documentType='CPF', documentNumber='', status = nil)
386
+ log "subscriptions_by_customer"
387
+
388
+ # define o método de envio da requisição
389
+ method = :get
390
+
391
+ # monta a URL de chamada da requisição
392
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:subscriptions_by_customer].gsub('{documentType}', documentType).gsub('{documentNumber}', sanitized_document_number(documentNumber))
393
+
394
+ # monta o parâmetro status na requisição da url
395
+ endpoint = status.blank? ? endpoint.gsub("&status={status}", '') : endpoint.gsub("{status}", status)
396
+
397
+ request(method, endpoint, login, password, {})
398
+ end
399
+
400
+ #= This method performs a query that summarizes all card's(CREDIT/DEBIT) operation between a date period by DAY, BRAND, PAYMENT_METHOD and STATUS.
401
+ #
402
+ # This is a is synchronous operation, using method GET
403
+ #
404
+ # Params:
405
+ # start_date: string (YYYY-MM-DD)
406
+ # end_date: string (YYYY-MM-DD)
407
+ #
408
+ # Response:
409
+ # {
410
+ # "result": {
411
+ # "success": true,
412
+ # "code": "000",
413
+ # "message": "Sucesso"
414
+ # },
415
+ # "pagging": {
416
+ # "limit": 6,
417
+ # "count": 1,
418
+ # "current": 1
419
+ # },
420
+ # "transactionsSummary": [
421
+ # {
422
+ # "date": "2018-01-19",
423
+ # "brand": "Mastercard",
424
+ # "paymentMethod": "CREDIT_CARD",
425
+ # "status": "AUTHORIZED",
426
+ # "count": 3,
427
+ # "sum": 600,
428
+ # "average": 200
429
+ # },
430
+ # {
431
+ # "date": "2018-01-19",
432
+ # "brand": "Mastercard",
433
+ # "paymentMethod": "CREDIT_CARD",
434
+ # "status": "CAPTURED",
435
+ # "count": 3,
436
+ # "sum": 300,
437
+ # "average": 100
438
+ # }]
439
+ # }
440
+ def cards_summary_by_day(start_date=(Date.today.at_beginning_of_month).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'))
441
+ log "Entrei em cards_summary_by_day"
442
+ # define o método de envio da requisição
443
+ method = :get
444
+
445
+ # monta a URL de chamada da requisição
446
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:cards_summary_by_day]
447
+ endpoint = endpoint.gsub("{startDate}", start_date).gsub("{endDate}", end_date)
448
+
449
+ # faz a chamada a plataforma de pagamento (MIDAS)
450
+ response = request(method, endpoint, self.login, self.password, {})
451
+
452
+ result = response[:result]
453
+ pagging = response[:pagging]
454
+ if response[:transactionsSummary].kind_of?(Array) || response[:transactionsSummary].blank?
455
+ transactions = response[:transactionsSummary]
456
+ else
457
+ transaction_array = []
458
+ transaction_array << response[:transactionsSummary]
459
+ transactions = transaction_array
460
+ end
461
+
462
+ response[:result] = result
463
+ response[:pagging] = pagging
464
+ response[:transactionsSummary] = transactions
465
+
466
+ response
467
+ end
468
+
469
+ #= This method performs a query that summarizes all card's(CREDIT/DEBIT) operation between a date period by by MONTH, BRAND, PAYMENT_METHOD and STATUS.
470
+ #
471
+ # This is a is synchronous operation, using method GET
472
+ #
473
+ # Params:
474
+ # start_month: string (MM)
475
+ # end_month: string (MM)
476
+ # start_year: string (YYYY)
477
+ # end_year: string (YYYY)
478
+ #
479
+ # Response:
480
+ # {
481
+ # "result": {
482
+ # "success": true,
483
+ # "code": "000",
484
+ # "message": "Sucesso"
485
+ # },
486
+ # "pagging": {
487
+ # "limit": 6,
488
+ # "count": 1,
489
+ # "current": 1
490
+ # },
491
+ # "transactionsSummary": [
492
+ # {
493
+ # "year": 2018,
494
+ # "month": 1,
495
+ # "brand": "Mastercard",
496
+ # "paymentMethod": "CREDIT_CARD",
497
+ # "status": "AUTHORIZED",
498
+ # "count": 3,
499
+ # "sum": 600,
500
+ # "average": 200
501
+ # },
502
+ # {
503
+ # "year": 2018,
504
+ # "month": 1,
505
+ # "brand": "Mastercard",
506
+ # "paymentMethod": "CREDIT_CARD",
507
+ # "status": "CAPTURED",
508
+ # "count": 3,
509
+ # "sum": 300,
510
+ # "average": 200
511
+ # }]
512
+ # }
513
+ def cards_summary_by_month(start_month=(Date.today - 1.year).strftime('%m'), start_year=((Date.today - 1.year).strftime('%Y')), end_month=(Date.today).strftime('%m'), end_year=((Date.today).strftime('%Y')))
514
+ log "Entrei em cards_summary_by_month"
515
+ # define o método de envio da requisição
516
+ method = :get
517
+
518
+ # monta a URL de chamada da requisição
519
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:cards_summary_by_month]
520
+ endpoint = endpoint.gsub("{startMonth}", start_month).gsub("{startYear}", start_year).gsub("{endMonth}", end_month).gsub("{endYear}", end_year)
521
+
522
+ # faz a chamada a plataforma de pagamento (MIDAS)
523
+ response = request(method, endpoint, self.login, self.password, {})
524
+
525
+ result = response[:result]
526
+ pagging = response[:pagging]
527
+ if response[:transactionsSummary].kind_of?(Array) || response[:transactionsSummary].blank?
528
+ transactions = response[:transactionsSummary]
36
529
  else
37
530
  transaction_array = []
38
- transaction_array << response[:transactions]
531
+ transaction_array << response[:transactionsSummary]
39
532
  transactions = transaction_array
40
533
  end
41
534
 
42
535
  response[:result] = result
43
536
  response[:pagging] = pagging
44
- response[:transactions] = transactions
537
+ response[:transactionsSummary] = transactions
45
538
 
46
539
  response
47
- end
48
-
49
- #= This method performs a query by a specific transaction's identifier, called external ID.
50
- # This is a is synchronous operation, using method GET
51
- #
52
- # Params:
53
- # transactionToken: string (Transaction unique identification generated by customer)
54
- #
55
- #
56
- # Response:
57
- # result: {
58
- # success: true/false
59
- # code: "XXX"
60
- # message: "Some message to you"
61
- # }
62
- def by_external_id(externalId)
63
- log "Entrei em by_external_id"
64
-
65
- # define o método de envio da requisição
66
- method = :get
67
-
68
- # monta a URL de chamada da requisição
69
- endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:by_external_id].gsub('{externalId}', externalId)
70
-
71
- request(method, endpoint, login, password, {})
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
540
  end
159
541
 
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
542
+ #= This method performs a query that summarizes all billet's operations between a date period by DATE, BANK, PAYMENT_METHOD and STATUS.
543
+ #
544
+ # This is a is synchronous operation, using method GET
545
+ #
546
+ # Params:
547
+ # start_date: string (YYYY-MM-DD)
548
+ # end_date: string (YYYY-MM-DD)
549
+ #
550
+ # Response:
551
+ # {
552
+ # "result": {
553
+ # "success": true,
554
+ # "code": "000",
555
+ # "message": "Sucesso"
556
+ # },
557
+ # "pagging": {
558
+ # "limit": 6,
559
+ # "count": 1,
560
+ # "current": 1
561
+ # },
562
+ # "transactionsSummary": [
563
+ # {
564
+ # "date": "2018-01-19",
565
+ # "brand": "Mastercard",
566
+ # "paymentMethod": "CREDIT_CARD",
567
+ # "status": "AUTHORIZED",
568
+ # "count": 3,
569
+ # "sum": 600,
570
+ # "average": 200
571
+ # },
572
+ # {
573
+ # "date": "2018-01-19",
574
+ # "brand": "Mastercard",
575
+ # "paymentMethod": "CREDIT_CARD",
576
+ # "status": "CAPTURED",
577
+ # "count": 3,
578
+ # "sum": 300,
579
+ # "average": 100
580
+ # }]
581
+ # }
582
+ def billets_summary_by_day(start_date=(Date.today.at_beginning_of_month).strftime('%Y-%m-%d'), end_date = Date.today.strftime('%Y-%m-%d'))
583
+ log "Entrei em billets_summary_by_day"
584
+ # define o método de envio da requisição
585
+ method = :get
586
+
587
+ # monta a URL de chamada da requisição
588
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:billets_summary_by_day]
589
+ endpoint = endpoint.gsub("{startDate}", start_date).gsub("{endDate}", end_date)
240
590
 
591
+ # faz a chamada a plataforma de pagamento (MIDAS)
592
+ response = request(method, endpoint, self.login, self.password, {})
241
593
 
594
+ result = response[:result]
595
+ pagging = response[:pagging]
596
+ if response[:transactionsSummary].kind_of?(Array) || response[:transactionsSummary].blank?
597
+ transactions = response[:transactionsSummary]
598
+ else
599
+ transaction_array = []
600
+ transaction_array << response[:transactionsSummary]
601
+ transactions = transaction_array
602
+ end
603
+
604
+ response[:result] = result
605
+ response[:pagging] = pagging
606
+ response[:transactionsSummary] = transactions
607
+
608
+ response
609
+ end
610
+
611
+ #= This method performs a query that summarizes all billet's operations between a date period by MONTH, BANK, PAYMENT_METHOD and STATUS.
612
+ #
613
+ # This is a is synchronous operation, using method GET
614
+ #
615
+ # Params:
616
+ # start_month: string (MM)
617
+ # end_month: string (MM)
618
+ # start_year: string (YYYY)
619
+ # end_year: string (YYYY)
620
+ #
621
+ # Response:
622
+ # {
623
+ # "result": {
624
+ # "success": true,
625
+ # "code": "000",
626
+ # "message": "Sucesso"
627
+ # },
628
+ # "pagging": {
629
+ # "limit": 6,
630
+ # "count": 1,
631
+ # "current": 1
632
+ # },
633
+ # "transactionsSummary": [
634
+ # {
635
+ # "year": 2018,
636
+ # "month": 1,
637
+ # "brand": "Mastercard",
638
+ # "paymentMethod": "CREDIT_CARD",
639
+ # "status": "AUTHORIZED",
640
+ # "count": 3,
641
+ # "sum": 600,
642
+ # "average": 200
643
+ # },
644
+ # {
645
+ # "year": 2018,
646
+ # "month": 1,
647
+ # "brand": "Mastercard",
648
+ # "paymentMethod": "CREDIT_CARD",
649
+ # "status": "CAPTURED",
650
+ # "count": 3,
651
+ # "sum": 300,
652
+ # "average": 200
653
+ # }]
654
+ # }
655
+ def billets_summary_by_month(start_month=(Date.today - 1.year).strftime('%m'), start_year=((Date.today - 1.year).strftime('%Y')), end_month=(Date.today).strftime('%m'), end_year=((Date.today).strftime('%Y')))
656
+ log "Entrei em billets_summary_by_month"
657
+ # define o método de envio da requisição
658
+ method = :get
659
+
660
+ # monta a URL de chamada da requisição
661
+ endpoint = get_env[:url] + EndPoints::QUERIES[:context] + EndPoints::QUERIES[:billets_summary_by_month]
662
+ endpoint = endpoint.gsub("{startMonth}", start_month).gsub("{startYear}", start_year).gsub("{endMonth}", end_month).gsub("{endYear}", end_year)
663
+
664
+ # faz a chamada a plataforma de pagamento (MIDAS)
665
+ response = request(method, endpoint, self.login, self.password, {})
666
+
667
+ result = response[:result]
668
+ pagging = response[:pagging]
669
+ if response[:transactionsSummary].kind_of?(Array) || response[:transactionsSummary].blank?
670
+ transactions = response[:transactionsSummary]
671
+ else
672
+ transaction_array = []
673
+ transaction_array << response[:transactionsSummary]
674
+ transactions = transaction_array
675
+ end
676
+
677
+ response[:result] = result
678
+ response[:pagging] = pagging
679
+ response[:transactionsSummary] = transactions
680
+
681
+ response
682
+ end
242
683
  end
243
684
  end