zspay 0.1.1 → 0.1.5

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: 15f21d4d7c01fdef590e2b7d2d83ac2209a1566b5ce48801f1c0f8d2af2d0e27
4
- data.tar.gz: 98a85b2b61b1b28f34b15e88cd66122b86427c97ffd8b4c2d5d04abacfe259d1
3
+ metadata.gz: 1dee3294f8d095b49e95df4b5483c555fd94964f1fe715e08ac35d15f46672e0
4
+ data.tar.gz: 1c9a1698a6446293cf6cf152db089d92104da9952e081bf8fb1144f612978f49
5
5
  SHA512:
6
- metadata.gz: 31738b56b4063774d7fa9cd86fdb08a3c27c622e6687f42a72d4f543530eb80947eb133fef35b81cca380ba81bed96dee8a7abf8336ad9ffc6812e5971fd9e3c
7
- data.tar.gz: cad953e3d8ed880e481e978b66b42f05ee1da28bab5f42357c48ba38e3e1266e0a0b0201009c2979223e1fa1fd1c8775d1f8012bd4adaf2c7c439bc225b6cba6
6
+ metadata.gz: 3f5ee02187a59e0ff7e211d6bffe15a41f92bcea0b4dd201bfdad4e9485e48f4690fd2e4db538c0c9c0daafd188dc0ef03664c88858664a1a4574626755da562
7
+ data.tar.gz: 3dde1a354cb560899bc1b1cbc0ad3b33a59cc327d6e6613c2cc5060bb3b0d9bfdf89170c8d39177c078769d2c0a2b693d688e61bcbcdeda7ec298ca00a167539
@@ -3,8 +3,8 @@
3
3
  module Zspay
4
4
  class Resource
5
5
  class << self
6
- def post(path, payload = {}, body: 'json')
7
- req(:post, path, payload, body: body)
6
+ def post(path, payload = {}, custom_token = nil, body: 'json')
7
+ req(:post, path, payload, custom_token, body: body)
8
8
  end
9
9
 
10
10
  def patch(path, payload)
@@ -25,29 +25,30 @@ module Zspay
25
25
 
26
26
  private
27
27
 
28
- def req(method, path, payload = {}, body: 'json')
29
- send("req_#{body}", method, path, payload)
28
+ def req(method, path, payload = {}, custom_token = nil, body: 'json')
29
+ send("req_#{body}", method, path, payload, custom_token)
30
30
  end
31
31
 
32
- def req_json(method, path, payload)
33
- res = HTTP.headers(headers).send(method, "#{endpoint}#{path}", json: payload)
32
+ def req_json(method, path, payload, custom_token)
33
+ res = HTTP.headers(headers(custom_token)).send(method, "#{endpoint}#{path}", json: payload)
34
34
 
35
35
  parse_body(res)
36
36
  end
37
37
 
38
- def req_form(method, path, payload)
38
+ def req_form(method, path, payload, custom_token)
39
39
  payload = HTTP::FormData::Multipart.new(payload)
40
- res = HTTP.headers(headers).send(method, "#{endpoint}#{path}", form: payload)
40
+ res = HTTP.headers(headers(custom_token)).send(method, "#{endpoint}#{path}", form: payload)
41
41
  parse_body(res)
42
42
  end
43
43
 
44
44
  def parse_body(response)
45
45
  if success_request?(response)
46
- json = JSON.parse(response.body.to_s, object_class: OpenStruct)
46
+ body = response.body.to_s
47
+ json = parse_json(body)
47
48
 
48
- json.message = JSON.parse(json.message.gsub(/^\d+ - /, ''), object_class: OpenStruct) if json.message
49
+ return json if json.is_a? OpenStruct
49
50
 
50
- json
51
+ OpenStruct.new({ success: false, error: body })
51
52
  else
52
53
  error_log = Logger.new(STDERR)
53
54
  error_log.error("Error while making Zspay request" \
@@ -63,15 +64,22 @@ module Zspay
63
64
  Zspay::Configuration.endpoint
64
65
  end
65
66
 
66
- def headers
67
+ def headers(custom_token = nil)
68
+ token = custom_token ? "Bearer #{custom_token}" : "Bearer #{Zspay::Configuration.token}"
67
69
  {
68
- 'Authorization': "Bearer #{Zspay::Configuration.token}"
70
+ 'Authorization': token
69
71
  }
70
72
  end
71
73
 
72
74
  def success_request?(response)
73
75
  response.code.to_s =~ /2../ && response
74
76
  end
77
+
78
+ def parse_json(json)
79
+ JSON.parse(json, object_class: OpenStruct)
80
+ rescue JSON::ParserError => e
81
+ json
82
+ end
75
83
  end
76
84
  end
77
85
  end
@@ -6,6 +6,10 @@ module Zspay
6
6
  def create(sale)
7
7
  post('/vendas', sale)
8
8
  end
9
+
10
+ def refund(sale_id)
11
+ post("/vendas/#{sale_id}/estornar")
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zspay
4
+ class Transfer < Zspay::Resource
5
+ class << self
6
+ def create(transfer, custom_token = nil)
7
+ post('/transferencias', transfer, custom_token)
8
+ end
9
+
10
+ def schedule_transfer(transfer_id)
11
+ get("/transferencias/agendadas/#{transfer_id}")
12
+ end
13
+
14
+ def remove(transfer_id)
15
+ delete("/transferencias/agendadas/#{transfer_id}")
16
+ end
17
+ end
18
+ end
19
+ end
@@ -4,3 +4,4 @@ require 'zspay/resources/bank_account'
4
4
  require 'zspay/resources/client'
5
5
  require 'zspay/resources/establishments'
6
6
  require 'zspay/resources/sale'
7
+ require 'zspay/resources/transfer'
data/lib/zspay/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zspay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nullbug
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-22 00:00:00.000000000 Z
11
+ date: 2022-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -67,6 +67,7 @@ files:
67
67
  - lib/zspay/resources/client.rb
68
68
  - lib/zspay/resources/establishments.rb
69
69
  - lib/zspay/resources/sale.rb
70
+ - lib/zspay/resources/transfer.rb
70
71
  - lib/zspay/version.rb
71
72
  homepage: ''
72
73
  licenses: