midas_client 0.2.4 → 0.2.13b

Sign up to get free protection for your applications and to get access to all the features.
@@ -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