zspay 0.1.8 → 1.0.1

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: 7d8da6e23747908a859867732e595bbb26e19ae091ca291f0eec8714d52d4527
4
- data.tar.gz: c370d49816a0d1301fea761877d8cc48aeb2c3e585dc66e994d739ea21a75f7b
3
+ metadata.gz: 180b5f125d68bd72b22362b92793b1870f926ab450a00232d98bf488e18910f0
4
+ data.tar.gz: 335056151d11456d19ead9d8930496b1fdbb1e8def541b2fb9635bc438e19f35
5
5
  SHA512:
6
- metadata.gz: 0e363d8a7dcc419690081c1bede2ba55c76962eeabb080dddd10a68b1be235851a330cccfb2b1dd1fe79e0fafb52ec8f24e2439ed29ac33c3a421479e28c9cc5
7
- data.tar.gz: ee85f60714b2518dc37b51c1aa5526c608f3c5b35490f46345cbc960b00e90d33f38ed514e371199af1fcaf1ac3354267f220cab29fbafb3d1bdb4d8bfb6b493
6
+ metadata.gz: f4a81a5e4670548d4473f2ed29fed0cdaa3a019d44d2444a0aa2821d90166f09e53f7b71a40b3aa20d6e5781e3676b7d439e23ceb0ce9b05986c665c25027b91
7
+ data.tar.gz: bc21ef4823d88e0401cee6f9dbe914ccc4d01315e89e0cc4bb166e563b6e00baceea8a87ba91b5f01d6749b529c88993447323c88e8160a0695437c4d2135621
data/.rubocop.yml ADDED
@@ -0,0 +1,26 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-minitest
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 3.0
7
+ NewCops: enable
8
+
9
+ Style/StringLiterals:
10
+ Enabled: true
11
+ EnforcedStyle: double_quotes
12
+
13
+ Style/StringLiteralsInInterpolation:
14
+ Enabled: true
15
+ EnforcedStyle: double_quotes
16
+
17
+ Layout/LineLength:
18
+ Max: 120
19
+
20
+ Naming/FileName:
21
+ Exclude:
22
+ - Rakefile.rb
23
+
24
+ # TODO: replace OpenStruct in version 2
25
+ Style/OpenStructUse:
26
+ Enabled: false
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --private
data/README.md ADDED
@@ -0,0 +1,106 @@
1
+ # Zspay Ruby Gem
2
+ The Zspay Ruby Gem provides an easy-to-use interface for integrating Zspay's payment processing features into Ruby applications. This includes handling clients, bank accounts, sales, transfers, and more.
3
+
4
+ ## Installation
5
+ Add this line to your application's Gemfile:
6
+ ```rb
7
+ gem 'zspay'
8
+ ```
9
+
10
+ And then execute:
11
+ ```shell
12
+ bundle install
13
+ ```
14
+
15
+ Or install it yourself as:
16
+ ```shell
17
+ gem install zspay
18
+ ```
19
+
20
+ ## Configuration
21
+
22
+ Before using the Zspay gem, you must configure it with your Zspay API credentials. This is typically done in an initializer in your Ruby application, such as config/initializers/zspay.rb.
23
+ ```rb
24
+ Zspay.configure do |config|
25
+ config.token = ENV.fetch('YOUR_TOKEN')
26
+ end
27
+ ```
28
+
29
+ ## Usage
30
+
31
+ Here's how to use the Zspay gem to interact with different resources:
32
+
33
+ ### Clients
34
+ ```rb
35
+ # Create a new client
36
+ client = Zspay::Client.create({
37
+ name: 'John Doe',
38
+ email: 'john@example.com',
39
+ document: '12345678900'
40
+ })
41
+
42
+ # Create a new card for a client
43
+ card = Zspay::Client.create_card(client_id, {
44
+ number: '4111111111111111',
45
+ expiry_month: '12',
46
+ expiry_year: '2030',
47
+ cvv: '123'
48
+ })
49
+ ```
50
+
51
+ ### Bank Accounts
52
+
53
+ ```rb
54
+ # List bank accounts
55
+ accounts = Zspay::BankAccount.index
56
+
57
+ # Create a new bank account
58
+ account = Zspay::BankAccount.create({
59
+ bank_code: '001',
60
+ agency: '0001',
61
+ account: '123456',
62
+ account_digit: '7'
63
+ })
64
+
65
+ # Activate a bank account
66
+ Zspay::BankAccount.active(account_id)
67
+ ```
68
+
69
+ ### Sales
70
+ ```rb
71
+ # Create a new sale
72
+ sale = Zspay::Sale.create({
73
+ amount: 100,
74
+ currency: 'BRL'
75
+ })
76
+
77
+ # Retrieve details of a sale
78
+ sale_details = Zspay::Sale.show(sale_id)
79
+
80
+ # Refund a sale
81
+ refund = Zspay::Sale.refund(sale_id)
82
+ ```
83
+
84
+ ### Transfers
85
+ ```rb
86
+ # Create a new transfer
87
+ transfer = Zspay::Transfer.create({
88
+ amount: 100,
89
+ recipient_id: 'recipient_id'
90
+ })
91
+
92
+ # Schedule a transfer
93
+ scheduled_transfer = Zspay::Transfer.schedule_transfer(transfer_id)
94
+
95
+ # Remove a scheduled transfer
96
+ Zspay::Transfer.remove(transfer_id)
97
+ ```
98
+
99
+ ## Development
100
+ After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
101
+
102
+ ## Contributing
103
+ Bug reports and pull requests are welcome. This project is intended to be a safe, welcoming space for collaboration.
104
+
105
+ ## License
106
+ The gem is available as open source under the terms of the MIT License.
data/Rakefile.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "minitest/test_task"
5
+ require "rubocop/rake_task"
6
+
7
+ Minitest::TestTask.create
8
+ RuboCop::RakeTask.new
9
+
10
+ task default: %i[test rubocop]
@@ -1,13 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The Configuration class is used to manage configuration settings for the Zspay library.
5
+ # It provides class-level accessors and methods to set and retrieve the configuration settings.
4
6
  class Configuration
5
- class << self
6
- attr_accessor :token
7
+ # @!attribute [rw] token
8
+ # @return [String] the API token used for authenticating requests to the Zspay service.
9
+ attr_accessor :token
7
10
 
8
- def endpoint
9
- 'https://api.zsystems.com.br'
10
- end
11
+ # Returns the default API endpoint for the Zspay service.
12
+ #
13
+ # @return [String] the base URL of the Zspay API endpoint.
14
+ def endpoint
15
+ ENV.fetch("Z_SYSTEMS_API", "https://api.zsystems.com.br")
11
16
  end
12
17
  end
13
18
  end
@@ -1,46 +1,105 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The Resource class provides methods to perform HTTP requests to the Zspay API.
5
+ # This class is designed to be a base class from which other resource-specific classes can inherit.
4
6
  class Resource
5
7
  class << self
6
- def post(path, payload = {}, custom_token = nil, body: 'json')
8
+ # Performs a POST request to the specified API path.
9
+ #
10
+ # @param path [String] the API path to send the request to.
11
+ # @param payload [Hash] the request payload, defaults to an empty hash.
12
+ # @param custom_token [String, nil] an optional custom token to use for the request.
13
+ # @param body [String] the format of the request body, defaults to 'json'.
14
+ # @return [OpenStruct] the parsed response.
15
+ def post(path, payload = {}, custom_token = nil, body: "json")
7
16
  req(:post, path, payload, custom_token, body: body)
8
17
  end
9
18
 
19
+ # Performs a PATCH request to the specified API path.
20
+ #
21
+ # @param path [String] the API path to send the request to.
22
+ # @param payload [Hash] the request payload.
23
+ # @param custom_token [String, nil] an optional custom token to use for the request.
24
+ # @return [OpenStruct] the parsed response.
10
25
  def patch(path, payload, custom_token = nil)
11
26
  req(:patch, path, payload, custom_token)
12
27
  end
13
28
 
29
+ # Performs a GET request to the specified API path.
30
+ #
31
+ # @param path [String] the API path to send the request to.
32
+ # @param custom_token [String, nil] an optional custom token to use for the request.
33
+ # @return [OpenStruct] the parsed response.
14
34
  def get(path, custom_token = nil)
15
35
  req(:get, path, {}, custom_token)
16
36
  end
17
37
 
38
+ # Performs a DELETE request to the specified API path.
39
+ #
40
+ # @param path [String] the API path to send the request to.
41
+ # @param custom_token [String, nil] an optional custom token to use for the request.
42
+ # @return [OpenStruct] the parsed response.
18
43
  def delete(path, custom_token = nil)
19
44
  req(:delete, path, {}, custom_token)
20
45
  end
21
46
 
47
+ # Performs a PUT request to the specified API path.
48
+ #
49
+ # @param path [String] the API path to send the request to.
50
+ # @param payload [Hash] the request payload, defaults to an empty hash.
51
+ # @param custom_token [String, nil] an optional custom token to use for the request.
52
+ # @return [OpenStruct] the parsed response.
22
53
  def put(path, payload = {}, custom_token = nil)
23
54
  req(:put, path, payload, custom_token)
24
55
  end
25
56
 
26
57
  private
27
58
 
28
- def req(method, path, payload = {}, custom_token = nil, body: 'json')
59
+ # A private method to perform an HTTP request using the specified method, path, and payload.
60
+ #
61
+ # @param method [Symbol] the HTTP method to use for the request.
62
+ # @param path [String] the API path to send the request to.
63
+ # @param payload [Hash] the request payload, defaults to an empty hash.
64
+ # @param custom_token [String, nil] an optional custom token to use for the request.
65
+ # @param body [String] the format of the request body, defaults to 'json'.
66
+ # @return [OpenStruct] the parsed response.
67
+ def req(method, path, payload = {}, custom_token = nil, body: "json")
29
68
  send("req_#{body}", method, path, payload, custom_token)
30
69
  end
31
70
 
71
+ # A private method to send a request with JSON body format.
72
+ #
73
+ # @param method [Symbol] the HTTP method.
74
+ # @param path [String] the path to send the request to.
75
+ # @param payload [Hash] the request payload.
76
+ # @param custom_token [String, nil] an optional custom token for the request.
77
+ # @return [OpenStruct] the parsed response.
32
78
  def req_json(method, path, payload, custom_token)
33
79
  res = HTTP.headers(headers(custom_token)).send(method, "#{endpoint}#{path}", json: payload)
34
80
 
35
81
  parse_body(res)
36
82
  end
37
83
 
84
+ # A private method to send a request with form body format.
85
+ #
86
+ # @param method [Symbol] the HTTP method.
87
+ # @param path [String] the path to send the request to.
88
+ # @param payload [Hash] the request payload.
89
+ # @param custom_token [String, nil] an optional custom token for the request.
90
+ # @return [OpenStruct] the parsed response.
38
91
  def req_form(method, path, payload, custom_token)
39
92
  payload = HTTP::FormData::Multipart.new(payload)
40
93
  res = HTTP.headers(headers(custom_token)).send(method, "#{endpoint}#{path}", form: payload)
41
94
  parse_body(res)
42
95
  end
43
96
 
97
+ # Parses the response body and returns it as an OpenStruct.
98
+ # If the request was successful, returns the JSON parsed body.
99
+ # Otherwise, logs the error and returns an error message.
100
+ #
101
+ # @param response [HTTP::Response] the HTTP response to parse.
102
+ # @return [OpenStruct] the parsed response.
44
103
  def parse_body(response)
45
104
  if success_request?(response)
46
105
  body = response.body.to_s
@@ -50,34 +109,47 @@ module Zspay
50
109
 
51
110
  OpenStruct.new({ success: false, error: body })
52
111
  else
53
- error_log = Logger.new(STDERR)
54
- error_log.error("Error while making Zspay request" \
55
- " to: #{response.uri}" \
56
- " body: #{response.body}" \
57
- " status: #{response.code}")
112
+ error_log = Logger.new($stderr)
113
+ error_log.error("Request error to: #{response.uri}\ncode: #{response.code}\nbody: #{response.body}")
58
114
 
59
- OpenStruct.new({ success: false, message: 'An error occurred while making the request' })
115
+ OpenStruct.new({ success: false, message: "An error occurred while making the request" })
60
116
  end
61
117
  end
62
118
 
119
+ # Returns the base endpoint URL from the configuration.
120
+ #
121
+ # @return [String] the API endpoint URL.
63
122
  def endpoint
64
- Zspay::Configuration.endpoint
123
+ Zspay.configuration.endpoint
65
124
  end
66
125
 
126
+ # Constructs the headers for the request.
127
+ # If a custom token is provided, it is used; otherwise, the default token from configuration is used.
128
+ #
129
+ # @param custom_token [String, nil] an optional custom token for the request.
130
+ # @return [Hash] the request headers.
67
131
  def headers(custom_token = nil)
68
- token = custom_token ? "Bearer #{custom_token}" : "Bearer #{Zspay::Configuration.token}"
132
+ token = "Bearer #{custom_token || Zspay.configuration.token}"
69
133
  {
70
- 'Authorization': token
134
+ Authorization: token
71
135
  }
72
136
  end
73
137
 
138
+ # Determines whether the response was successful based on the status code.
139
+ #
140
+ # @param response [HTTP::Response] the response to check.
141
+ # @return [Boolean] true if the response was successful, false otherwise.
74
142
  def success_request?(response)
75
143
  response.code.to_s =~ /2../ && response
76
144
  end
77
145
 
146
+ # Parses a JSON string into an OpenStruct. If parsing fails, returns the original JSON string.
147
+ #
148
+ # @param json [String] the JSON string to parse.
149
+ # @return [OpenStruct, String] the parsed JSON or the original string if parsing failed.
78
150
  def parse_json(json)
79
151
  JSON.parse(json, object_class: OpenStruct)
80
- rescue JSON::ParserError => e
152
+ rescue JSON::ParserError => _e
81
153
  json
82
154
  end
83
155
  end
@@ -1,20 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The BankAccount class provides methods to manage bank accounts within the Zspay platform.
5
+ # This class extends the Zspay::Resource class, utilizing its HTTP request methods.
4
6
  class BankAccount < Zspay::Resource
5
7
  class << self
8
+ # Retrieves a list of all bank accounts associated with the current establishment.
9
+ #
10
+ # @return [OpenStruct] A list of bank accounts if the request is successful.
6
11
  def index
7
- get('/estabelecimentos/contas_bancarias')
12
+ get("/estabelecimentos/contas_bancarias")
8
13
  end
9
14
 
15
+ # Creates a new bank account for the current establishment.
16
+ #
17
+ # @param account [Hash] The bank account details required for creation.
18
+ # @return [OpenStruct] The created bank account details if the request is successful.
10
19
  def create(account)
11
- post('/estabelecimentos/contas_bancarias', account)
20
+ post("/estabelecimentos/contas_bancarias", account)
12
21
  end
13
22
 
23
+ # Activates a specific bank account for the current establishment.
24
+ #
25
+ # @param account_id [String] The unique identifier of the bank account to be activated.
26
+ # @return [OpenStruct] The status of the bank account after attempting activation.
14
27
  def active(account_id)
15
28
  post("/estabelecimentos/contas_bancarias/#{account_id}/ativar")
16
29
  end
17
30
 
31
+ # Deletes a specific bank account from the establishment.
32
+ #
33
+ # @param establishment_id [String] The unique identifier of the establishment.
34
+ # @param account_id [String] The unique identifier of the bank account to be deleted.
35
+ # @return [OpenStruct] The status message indicating the result of the deletion request.
18
36
  def destroy(establishment_id, account_id)
19
37
  delete("/estabelecimentos/#{establishment_id}/contas_bancarias/#{account_id}/excluir")
20
38
  end
@@ -1,12 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The Client class is responsible for handling client-related actions within the Zspay platform.
5
+ # It allows for creating clients and their associated cards by extending the Zspay::Resource class.
4
6
  class Client < Zspay::Resource
5
7
  class << self
8
+ # Creates a new client on the Zspay platform.
9
+ #
10
+ # This method sends a POST request to the Zspay API to create a new client record.
11
+ # The client's information should be provided in the form of a hash.
12
+ #
13
+ # @param client [Hash] A hash containing the client's information, such as name, email, etc.
14
+ # @return [OpenStruct] A structure containing the newly created client's details if successful.
6
15
  def create(client)
7
- post('/clientes', client)
16
+ post("/clientes", client)
8
17
  end
9
18
 
19
+ # Adds a new card for an existing client on the Zspay platform.
20
+ #
21
+ # This method sends a POST request to add a new card to the specified client's account.
22
+ # The card information, including number, expiry date, and CVV, should be provided in the form of a hash.
23
+ #
24
+ # @param client_id [String] The unique identifier of the client to whom the card will be added.
25
+ # @param card [Hash] A hash containing the card's information, such as number, expiry date, and CVV.
26
+ # @return [OpenStruct] A structure containing the newly added card's details if successful.
10
27
  def create_card(client_id, card)
11
28
  post("/clientes/#{client_id}/cartoes", card)
12
29
  end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zspay
4
+ # The Establishment class manages establishment-related actions within the Zspay platform.
5
+ # It allows for listing, creating, enabling, disabling establishment, and more, extending the functionality
6
+ # from Zspay::Resource.
7
+ class Establishment < Zspay::Resource
8
+ class << self
9
+ # Retrieves a list of child establishments associated with the current establishment.
10
+ #
11
+ # @return [OpenStruct] A structure containing the list of child establishments if the request is successful.
12
+ def index
13
+ get("/estabelecimentos/filhos")
14
+ end
15
+
16
+ # Creates a new establishment on the Zspay platform.
17
+ #
18
+ # @param establishment [Hash] A hash containing the establishment's information.
19
+ # @return [OpenStruct] A structure containing the newly created establishment's details if the request
20
+ # is successful.
21
+ def create(establishment)
22
+ post("/estabelecimentos", establishment, body: "form")
23
+ end
24
+
25
+ # Activates an existing establishment on the Zspay platform.
26
+ #
27
+ # @param establishment_id [String] The unique identifier of the establishment to be activated.
28
+ # @return [OpenStruct] A structure indicating the activation status of the establishment if the request
29
+ # is successful.
30
+ def active(establishment_id)
31
+ post("/estabelecimentos/#{establishment_id}/habilitar")
32
+ end
33
+
34
+ # Disables an existing establishment on the Zspay platform.
35
+ #
36
+ # @param establishment_id [String] The unique identifier of the establishment to be disabled.
37
+ # @return [OpenStruct] A structure indicating the disabled status of the establishment if the request
38
+ # is successful.
39
+ def disable(establishment_id)
40
+ delete("/estabelecimentos/#{establishment_id}")
41
+ end
42
+
43
+ # Retrieves the token associated with a specific establishment.
44
+ #
45
+ # This token is typically used for authentication in subsequent API requests.
46
+ #
47
+ # @param establishment_id [String] The unique identifier of the establishment for which to retrieve the token.
48
+ # @return [OpenStruct] A structure containing the establishment's token if the request is successful.
49
+ def token(establishment_id)
50
+ get("/estabelecimentos/#{establishment_id}/token")
51
+ end
52
+
53
+ # Retrieves the balance of a specific establishment.
54
+ #
55
+ # @param establishment_id [String] The unique identifier of the establishment for which to retrieve the balance.
56
+ # @return [OpenStruct] A structure containing the establishment's balance details if the request is successful.
57
+ def balance(establishment_id)
58
+ get("/estabelecimentos/#{establishment_id}/saldo")
59
+ end
60
+
61
+ # Searches for an establishment based on its document number.
62
+ #
63
+ # @param document [String] The document number of the establishment to search for.
64
+ # @return [OpenStruct] A structure containing the establishment's details if found, otherwise an error message.
65
+ def search_by_document(document)
66
+ get("/estabelecimentos/por_documento/#{document}")
67
+ end
68
+ end
69
+ end
70
+ end
@@ -1,18 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The Sale class manages sale-related actions within the Zspay platform.
5
+ # It provides methods to create a sale, retrieve sale details, and refund a sale,
6
+ # extending the functionality from Zspay::Resource.
4
7
  class Sale < Zspay::Resource
5
8
  class << self
9
+ # Creates a new sale on the Zspay platform.
10
+ #
11
+ # @param sale [Hash] A hash containing the sale information.
12
+ # @param custom_token [String, nil] An optional custom token to use for the request.
13
+ # @return [OpenStruct] A structure containing the newly created sale's details if the request is successful.
6
14
  def create(sale, custom_token = nil)
7
- post('/vendas', sale, custom_token)
15
+ post("/vendas", sale, custom_token)
8
16
  end
9
17
 
18
+ # Retrieves details of a specific sale.
19
+ #
20
+ # @param sale_id [String] The unique identifier of the sale to retrieve.
21
+ # @param custom_token [String, nil] An optional custom token to use for the request.
22
+ # @return [OpenStruct] A structure containing the sale's details if the request is successful.
10
23
  def show(sale_id, custom_token = nil)
11
24
  get("/vendas/#{sale_id}", custom_token)
12
25
  end
13
26
 
27
+ # Processes a refund for a specific sale.
28
+ #
29
+ # This method sends a request to refund a previously made sale. The sale is identified by its unique ID.
30
+ #
31
+ # @param sale_id [String] The unique identifier of the sale to refund.
32
+ # @param custom_token [String, nil] An optional custom token to use for the request.
33
+ # @return [OpenStruct] A structure indicating the result of the refund operation if the request is successful.
14
34
  def refund(sale_id, custom_token = nil)
15
- post("/vendas/#{sale_id}/estornar", payload = {}, custom_token)
35
+ post("/vendas/#{sale_id}/estornar", {}, custom_token)
16
36
  end
17
37
  end
18
38
  end
@@ -1,16 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zspay
4
+ # The Transfer class manages transfer-related actions within the Zspay platform.
5
+ # It provides methods to create, schedule, and remove transfers, extending from Zspay::Resource.
4
6
  class Transfer < Zspay::Resource
5
7
  class << self
8
+ # Creates a new transfer on the Zspay platform.
9
+ #
10
+ # This method sends a POST request to create a new transfer with the provided details.
11
+ #
12
+ # @param transfer [Hash] A hash containing the transfer details.
13
+ # @param custom_token [String, nil] An optional custom token to use for the request.
14
+ # @return [OpenStruct] A structure containing the newly created transfer's details if the request is successful.
6
15
  def create(transfer, custom_token = nil)
7
- post('/transferencias', transfer, custom_token)
16
+ post("/transferencias", transfer, custom_token)
8
17
  end
9
18
 
19
+ # Retrieves the details of a scheduled transfer.
20
+ #
21
+ # This method sends a GET request to obtain details about a transfer that has been scheduled.
22
+ #
23
+ # @param transfer_id [String] The unique identifier of the scheduled transfer.
24
+ # @param custom_token [String, nil] An optional custom token to use for the request.
25
+ # @return [OpenStruct] A structure containing the scheduled transfer's details if the request is successful.
10
26
  def schedule_transfer(transfer_id, custom_token = nil)
11
27
  get("/transferencias/agendadas/#{transfer_id}", custom_token)
12
28
  end
13
29
 
30
+ # Cancels a scheduled transfer.
31
+ #
32
+ # This method sends a DELETE request to remove a previously scheduled transfer from the system.
33
+ #
34
+ # @param transfer_id [String] The unique identifier of the transfer to be removed.
35
+ # @param custom_token [String, nil] An optional custom token to use for the request.
36
+ # @return [OpenStruct] A structure indicating the result of the cancellation if the request is successful.
14
37
  def remove(transfer_id, custom_token = nil)
15
38
  delete("/transferencias/agendadas/#{transfer_id}", custom_token)
16
39
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'zspay/resources/bank_account'
4
- require 'zspay/resources/client'
5
- require 'zspay/resources/establishments'
6
- require 'zspay/resources/sale'
7
- require 'zspay/resources/transfer'
3
+ require "zspay/resources/bank_account"
4
+ require "zspay/resources/client"
5
+ require "zspay/resources/establishment"
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.8'
4
+ VERSION = "1.0.1"
5
5
  end
data/lib/zspay.rb CHANGED
@@ -1,21 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'http'
4
- require 'byebug'
5
- require 'logger'
6
- require 'active_support/hash_with_indifferent_access'
3
+ require "http"
4
+ require "logger"
5
+ require "active_support/hash_with_indifferent_access"
7
6
 
8
- require 'zspay/configuration'
7
+ require "zspay/version"
9
8
 
10
- require 'zspay/resource'
11
- require 'zspay/resources'
9
+ require "zspay/configuration"
12
10
 
11
+ require "zspay/resource"
12
+ require "zspay/resources"
13
+
14
+ # The Zspay module is the main namespace for the Zspay gem.
15
+ # It provides methods to configure and access the gem's settings.
16
+ #
17
+ # Examples:
18
+ # Zspay.configure do |config|
19
+ # config.token = 'your_api_token'
20
+ # end
13
21
  module Zspay
14
22
  class << self
23
+ # Returns the configuration object for Zspay. If the configuration
24
+ # has not yet been initialized, it will create a new instance of
25
+ # Configuration.
26
+ #
27
+ # @return [Zspay::Configuration] the current Zspay configuration
15
28
  def configuration
16
29
  @configuration ||= Configuration.new
17
30
  end
18
31
 
32
+ # Yields the current Zspay configuration to a block.
33
+ # This method is typically used to set up the gem's settings.
34
+ #
35
+ # @yieldparam config [Zspay::Configuration] the current Zspay configuration
36
+ # @example
37
+ # Zspay.configure do |config|
38
+ # config.token = 'your_api_token'
39
+ # end
19
40
  def configure
20
41
  yield(configuration)
21
42
  end
metadata CHANGED
@@ -1,60 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zspay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Augusto Silva
8
8
  - Edson Lima
9
9
  - Nullbug
10
10
  autorequire:
11
- bindir: bin
11
+ bindir: exe
12
12
  cert_chain: []
13
- date: 2022-06-28 00:00:00.000000000 Z
13
+ date: 2024-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: http
16
+ name: activesupport
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 6.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
29
- - !ruby/object:Gem::Dependency
30
- name: byebug
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '0'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '0'
28
+ version: 6.0.0
43
29
  - !ruby/object:Gem::Dependency
44
- name: rake
30
+ name: http
45
31
  requirement: !ruby/object:Gem::Requirement
46
32
  requirements:
47
33
  - - ">="
48
34
  - !ruby/object:Gem::Version
49
- version: '0'
50
- type: :development
35
+ version: 5.2.0
36
+ type: :runtime
51
37
  prerelease: false
52
38
  version_requirements: !ruby/object:Gem::Requirement
53
39
  requirements:
54
40
  - - ">="
55
41
  - !ruby/object:Gem::Version
56
- version: '0'
57
- description: ZSPAY
42
+ version: 5.2.0
43
+ description: A Ruby interface for integrating and managing payment and transfer functionalities
44
+ with the Zspay platform.
58
45
  email:
59
46
  - pedro@nullbug.dev
60
47
  - edson@nullbug.dev
@@ -62,37 +49,42 @@ executables: []
62
49
  extensions: []
63
50
  extra_rdoc_files: []
64
51
  files:
52
+ - ".rubocop.yml"
53
+ - ".yardopts"
54
+ - README.md
55
+ - Rakefile.rb
65
56
  - lib/zspay.rb
66
57
  - lib/zspay/configuration.rb
67
58
  - lib/zspay/resource.rb
68
59
  - lib/zspay/resources.rb
69
60
  - lib/zspay/resources/bank_account.rb
70
61
  - lib/zspay/resources/client.rb
71
- - lib/zspay/resources/establishments.rb
62
+ - lib/zspay/resources/establishment.rb
72
63
  - lib/zspay/resources/sale.rb
73
64
  - lib/zspay/resources/transfer.rb
74
65
  - lib/zspay/version.rb
75
- homepage: ''
66
+ homepage: https://github.com/pedroaugustofsilva/zspay-ruby
76
67
  licenses:
77
68
  - MIT
78
- metadata: {}
69
+ metadata:
70
+ rubygems_mfa_required: 'true'
79
71
  post_install_message:
80
72
  rdoc_options: []
81
73
  require_paths:
82
74
  - lib
83
75
  required_ruby_version: !ruby/object:Gem::Requirement
84
76
  requirements:
85
- - - ">="
77
+ - - "~>"
86
78
  - !ruby/object:Gem::Version
87
- version: 2.4.0
79
+ version: '3.0'
88
80
  required_rubygems_version: !ruby/object:Gem::Requirement
89
81
  requirements:
90
82
  - - ">="
91
83
  - !ruby/object:Gem::Version
92
84
  version: '0'
93
85
  requirements: []
94
- rubygems_version: 3.3.7
86
+ rubygems_version: 3.5.6
95
87
  signing_key:
96
88
  specification_version: 4
97
- summary: ZSPAY
89
+ summary: Ruby interface for Zspay API.
98
90
  test_files: []
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zspay
4
- class Establishments < Zspay::Resource
5
- class << self
6
- def index
7
- get('/estabelecimentos/filhos')
8
- end
9
-
10
- def create(establishment)
11
- post('/estabelecimentos', establishment, body: 'form')
12
- end
13
-
14
- def active(establishment_id)
15
- post("/estabelecimentos/#{establishment_id}/habilitar")
16
- end
17
-
18
- def disable(establishment_id)
19
- delete("/estabelecimentos/#{establishment_id}")
20
- end
21
-
22
- def token(establishment_id)
23
- get("/estabelecimentos/#{establishment_id}/token")
24
- end
25
-
26
- def balance(establishment_id)
27
- get("/estabelecimentos/#{establishment_id}/saldo")
28
- end
29
-
30
- def search_by_document(document)
31
- get("/estabelecimentos/por_documento/#{document}")
32
- end
33
- end
34
- end
35
- end