mp_api 0.1.7 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 788c5ad731e55c5c113f9164ebc22f9e61f2a8305d6c1966c280dada3c8e6a6b
4
- data.tar.gz: abef159ec4a3085da78f4d201fbd46ea699507f4745076ded703aec253e6d942
3
+ metadata.gz: 7958b0b7c457103803f4add0d017a49d36e0eb420552ed406aebe9a9bb31a210
4
+ data.tar.gz: 9421b7d5e0a50e7e4552f07f6319708b7abbb92b9e34925a1e2993f790155ba1
5
5
  SHA512:
6
- metadata.gz: c0f4292cb63bf270a72380fa88e19ce7746bacb3ea915d0fdfb681127d588d7b3c54aefa37a2384ca441f81cb088efdee9c58d86a868fd9f212a472137bb0005
7
- data.tar.gz: 3b4feba9f139ec060777e397dc9c57e6517b44d1daff2a5601b305e7198c236507be21d169ca6b8b0320cae76d35c7bde27ca781a5e21f574e5ca9f25846d61e
6
+ metadata.gz: 90b2e88528da605933fc22078a737a6b16d48df84a57c1034850d3627a4331a0c26882a3ca786410d2a78ff1f844e0913ddeda90c3b6a05bb93fd5038decced7
7
+ data.tar.gz: bda6cb3e8f9dabd483569564f7f542d0f00490722d783ead92ef10ec634afc07e06ac494f79448c48e21b4c016036e1a5809f4b530056b07c7fbe5270f8ab8a3
data/lib/mp_api/client.rb CHANGED
@@ -1,55 +1,60 @@
1
- module MpApi
2
- class Client < Ac::Base
3
- BASE_URL = "https://api.mercadopago.com/v1/"
4
- MAX_RETRIES = 2
5
- attr_reader :access_token
6
- def initialize(access_token=MpApi.configuration.access_token)
7
- @headers = {
8
- "Content-Type": "application/json",
9
- 'x-idempotency-key' => SecureRandom.uuid
10
- }
11
- super access_token
12
- end
13
-
14
- def create_payment(body)
15
- response = post("/payments", body: body, headers: @headers) do |response|
16
- p response.json unless response.success?
17
- response.json['id']
18
- end
19
- response.json
20
- end
21
-
22
- def get_payment(payment_id)
23
- response = get("/payments/#{payment_id}") do |response|
24
- p response.json unless response.success?
25
- response.json['id']
26
- end
27
- response.json
28
- end
29
-
30
- def create_token(card_token_data)
31
- response = post("/card_tokens", body: card_token_data, headers: @headers) do |response|
32
- p response.json unless response.success?
33
- response.json['id']
34
- end
35
- response.json
36
- end
37
-
38
- def search_payment_methods(query)
39
- response = get("/payment_methods/search", params: query) do |response|
40
- p response.json unless response.success?
41
- response.json['results'][0]
42
- end
43
- response.json
44
- end
45
-
46
- def get_payment_methods
47
- response = get("/payment_methods") do |response|
48
- p response.json unless response.success?
49
- response.json['id']
50
- end
51
- response.json
52
- end
53
-
54
- end
1
+ module MpApi
2
+ class Client < Ac::Base
3
+ BASE_URL = "https://api.mercadopago.com/v1/"
4
+ MAX_RETRIES = 2
5
+ attr_reader :access_token
6
+ def initialize(access_token=MpApi.configuration.access_token)
7
+ @headers = {
8
+ "Content-Type": "application/json",
9
+ 'x-idempotency-key' => SecureRandom.uuid
10
+ }
11
+ super access_token
12
+ end
13
+
14
+ def create_payment(body)
15
+ response = post("/payments", body: body, headers: @headers) do |response|
16
+ p response.json unless response.success?
17
+ ![500, 429].include?(response.code) || response['id']
18
+ end
19
+ raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
20
+ response.json
21
+ end
22
+
23
+ def get_payment(payment_id)
24
+ response = get("/payments/#{payment_id}") do |response|
25
+ p response.json unless response.success?
26
+ ![500, 429].include?(response.code) || response['id']
27
+ end
28
+ raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
29
+ response.json
30
+ end
31
+
32
+ def create_token(card_token_data)
33
+ response = post("/card_tokens", body: card_token_data, headers: @headers) do |response|
34
+ p response.json unless response.success?
35
+ ![500, 429].include?(response.code) || response['id']
36
+ end
37
+ raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
38
+ response.json
39
+ end
40
+
41
+ def search_payment_methods(query)
42
+ response = get("/payment_methods/search", params: query) do |response|
43
+ p response.json unless response.success?
44
+ ![500, 429].include?(response.code) || response.json['results'][0]
45
+ end
46
+ raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
47
+ response.json
48
+ end
49
+
50
+ def get_payment_methods
51
+ response = get("/payment_methods") do |response|
52
+ p response.json unless response.success?
53
+ ![500, 429].include?(response.code) || response['id']
54
+ end
55
+ raise RequestError.new(response.json['message']) if ![200,201].include?(response.code)
56
+ response.json
57
+ end
58
+
59
+ end
55
60
  end
@@ -3,7 +3,11 @@ module MpApi
3
3
  class PaymentMethod
4
4
 
5
5
  def self.find_by_first_six_digits(first_six_digits, credit: true)
6
- response = Client.new.search_payment_methods(build_query(first_six_digits))
6
+ begin
7
+ response = Client.new.search_payment_methods(build_query(first_six_digits))
8
+ rescue RuntimeError => e
9
+ e.message == 'Too many retries' ? raise(TooManyRequestsError) : raise(e)
10
+ end
7
11
  new(**build_hash(response, credit))
8
12
  end
9
13
 
data/lib/mp_api/token.rb CHANGED
@@ -25,8 +25,12 @@ module MpApi
25
25
  end
26
26
 
27
27
  def create
28
- response = Client.new.create_token(JSON.dump(build_json))
29
- self.class.new(**self.class.build_hash(response))
28
+ begin
29
+ response = Client.new.create_token(JSON.dump(build_json))
30
+ self.class.new(**self.class.build_hash(response))
31
+ rescue RuntimeError => e
32
+ e.message == 'Too many retries' ? raise(TooManyRequestsError) : raise(e)
33
+ end
30
34
  end
31
35
 
32
36
  def self.build_hash(response)
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
-
3
- module MpApi
4
- VERSION = "0.1.7"
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module MpApi
4
+ VERSION = "0.1.9"
5
+ end
data/lib/mp_api.rb CHANGED
@@ -15,6 +15,12 @@ module MpApi
15
15
  end
16
16
  end
17
17
 
18
+ class RequestError < StandardError
19
+ def initialize(message="Request error")
20
+ super(message)
21
+ end
22
+ end
23
+
18
24
  class Configuration
19
25
  attr_accessor :access_token, :public_key
20
26
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mp_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-07 00:00:00.000000000 Z
11
+ date: 2023-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ac