multiapi 0.1.0
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.
- checksums.yaml +7 -0
- data/LICENSE.txt +15 -0
- data/README.md +95 -0
- data/lib/multiapi/client.rb +76 -0
- data/lib/multiapi/resources/transaction.rb +33 -0
- data/lib/multiapi/resources/user.rb +29 -0
- data/lib/multiapi/version.rb +3 -0
- data/lib/multiapi.rb +6 -0
- metadata +134 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e2d46f27dc6c4028a4f22b3c9ba68a81a7fc1cceab3921026cf6e6fd3c216f5c
|
4
|
+
data.tar.gz: 1374e6e6078f4b09b8e4efae43bd556ae003d61cde1a9d46b6506bad65a943af
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b88df8e2eb0596b4df07fb6ee4925f5981f5efdafb87842aba0b5f75dca3cb854470e5bc53f2a5b6e64f9f570c3312b92e0efa1b9a92dbfa8705fde3339d66ce
|
7
|
+
data.tar.gz: bc75e8a1b92c4cdc3a2ecae62b76bbd2c00de7ab3c6834c9aa66ea752c30cda863c3dd6c13f277e1188158e180d7905bf1d730feb1fc801484f083272961b6eb
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Acordo de Licença de Software Proprietário
|
2
|
+
|
3
|
+
Copyright (c) 2025 StackLab Digital
|
4
|
+
|
5
|
+
Este software e a documentação associada são propriedade confidencial e proprietária
|
6
|
+
de StackLab Digital. O uso deste software está sujeito aos termos e condições
|
7
|
+
estabelecidos em acordo comercial separado.
|
8
|
+
|
9
|
+
É estritamente proibido:
|
10
|
+
1. Copiar, reproduzir ou distribuir este software
|
11
|
+
2. Modificar, criar trabalhos derivados ou fazer engenharia reversa
|
12
|
+
3. Transferir ou sublicenciar este software para terceiros
|
13
|
+
4. Usar este software sem uma licença válida
|
14
|
+
|
15
|
+
Todos os direitos não expressamente concedidos são reservados à StackLab Digital.
|
data/README.md
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
# Multiapi Ruby SDK
|
2
|
+
|
3
|
+
Este é o SDK oficial em Ruby para integração com a API Multiapi.
|
4
|
+
|
5
|
+
## Instalação
|
6
|
+
|
7
|
+
Adicione esta linha ao Gemfile da sua aplicação:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'multiapi'
|
11
|
+
```
|
12
|
+
|
13
|
+
E então execute:
|
14
|
+
|
15
|
+
```bash
|
16
|
+
$ bundle install
|
17
|
+
```
|
18
|
+
|
19
|
+
Ou instale manualmente:
|
20
|
+
|
21
|
+
```bash
|
22
|
+
$ gem install multiapi
|
23
|
+
```
|
24
|
+
|
25
|
+
## Uso
|
26
|
+
|
27
|
+
Primeiro, configure o cliente com sua chave de API:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
require 'multiapi'
|
31
|
+
|
32
|
+
client = Multiapi::Client.new(api_key: 'sua_chave_api')
|
33
|
+
```
|
34
|
+
|
35
|
+
### Usuários
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
# Listar usuários
|
39
|
+
users = client.users.list(page: 1, per_page: 20)
|
40
|
+
|
41
|
+
# Criar um usuário
|
42
|
+
user = client.users.create(
|
43
|
+
name: 'João Silva',
|
44
|
+
email: 'joao@exemplo.com'
|
45
|
+
)
|
46
|
+
|
47
|
+
# Buscar um usuário
|
48
|
+
user = client.users.find(123)
|
49
|
+
|
50
|
+
# Atualizar um usuário
|
51
|
+
user = client.users.update(123, name: 'João Silva Jr')
|
52
|
+
|
53
|
+
# Deletar um usuário
|
54
|
+
client.users.delete(123)
|
55
|
+
```
|
56
|
+
|
57
|
+
### Transações
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
# Listar transações
|
61
|
+
transactions = client.transactions.list(page: 1, per_page: 20)
|
62
|
+
|
63
|
+
# Criar uma transação
|
64
|
+
transaction = client.transactions.create(
|
65
|
+
user_id: 123,
|
66
|
+
amount: 100.00,
|
67
|
+
description: 'Pagamento'
|
68
|
+
)
|
69
|
+
|
70
|
+
# Buscar uma transação
|
71
|
+
transaction = client.transactions.find(456)
|
72
|
+
|
73
|
+
# Atualizar uma transação
|
74
|
+
transaction = client.transactions.update(456, description: 'Pagamento atualizado')
|
75
|
+
|
76
|
+
# Deletar uma transação
|
77
|
+
client.transactions.delete(456)
|
78
|
+
|
79
|
+
# Listar transações de um usuário
|
80
|
+
transactions = client.transactions.by_user(123, page: 1, per_page: 20)
|
81
|
+
```
|
82
|
+
|
83
|
+
## Desenvolvimento
|
84
|
+
|
85
|
+
Após clonar o repositório, execute `bin/setup` para instalar as dependências. Então, execute `rake spec` para rodar os testes.
|
86
|
+
|
87
|
+
## Contribuindo
|
88
|
+
|
89
|
+
Bug reports e pull requests são bem-vindos no GitHub. Este projeto é destinado a ser um espaço seguro e acolhedor para colaboração.
|
90
|
+
|
91
|
+
## Licença
|
92
|
+
|
93
|
+
Este SDK é propriedade privada da StackLab Digital. Todos os direitos reservados.
|
94
|
+
O uso deste SDK está sujeito aos termos e condições estabelecidos em acordo comercial.
|
95
|
+
Não é permitida a redistribuição ou modificação sem autorização expressa.
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'json'
|
3
|
+
require_relative 'version'
|
4
|
+
require_relative 'resources/user'
|
5
|
+
require_relative 'resources/transaction'
|
6
|
+
|
7
|
+
module Multiapi
|
8
|
+
class Client
|
9
|
+
attr_reader :api_key, :base_url
|
10
|
+
|
11
|
+
def initialize(api_key:, base_url: 'https://api.multiapi.com')
|
12
|
+
@api_key = api_key
|
13
|
+
@base_url = base_url
|
14
|
+
@connection = create_connection
|
15
|
+
end
|
16
|
+
|
17
|
+
def users
|
18
|
+
@users ||= Resources::User.new(self)
|
19
|
+
end
|
20
|
+
|
21
|
+
def transactions
|
22
|
+
@transactions ||= Resources::Transaction.new(self)
|
23
|
+
end
|
24
|
+
|
25
|
+
def get(path, params = {})
|
26
|
+
handle_response(@connection.get(path, params))
|
27
|
+
end
|
28
|
+
|
29
|
+
def post(path, body = {})
|
30
|
+
handle_response(@connection.post(path, body.to_json))
|
31
|
+
end
|
32
|
+
|
33
|
+
def put(path, body = {})
|
34
|
+
handle_response(@connection.put(path, body.to_json))
|
35
|
+
end
|
36
|
+
|
37
|
+
def delete(path, params = {})
|
38
|
+
handle_response(@connection.delete(path, params))
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def create_connection
|
44
|
+
Faraday.new(url: base_url) do |conn|
|
45
|
+
conn.headers['Authorization'] = "Bearer #{api_key}"
|
46
|
+
conn.headers['Content-Type'] = 'application/json'
|
47
|
+
conn.headers['Accept'] = 'application/json'
|
48
|
+
conn.adapter Faraday.default_adapter
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def handle_response(response)
|
53
|
+
case response.status
|
54
|
+
when 200..299
|
55
|
+
JSON.parse(response.body)
|
56
|
+
else
|
57
|
+
raise Error.new(response)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class Error < StandardError
|
63
|
+
attr_reader :response
|
64
|
+
|
65
|
+
def initialize(response)
|
66
|
+
@response = response
|
67
|
+
super(build_error_message)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def build_error_message
|
73
|
+
"#{response.status} - #{response.body}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Multiapi
|
2
|
+
module Resources
|
3
|
+
class Transaction
|
4
|
+
def initialize(client)
|
5
|
+
@client = client
|
6
|
+
end
|
7
|
+
|
8
|
+
def list(page: 1, per_page: 20)
|
9
|
+
@client.get('/transactions', page: page, per_page: per_page)
|
10
|
+
end
|
11
|
+
|
12
|
+
def create(attributes)
|
13
|
+
@client.post('/transactions', attributes)
|
14
|
+
end
|
15
|
+
|
16
|
+
def find(id)
|
17
|
+
@client.get("/transactions/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def update(id, attributes)
|
21
|
+
@client.put("/transactions/#{id}", attributes)
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete(id)
|
25
|
+
@client.delete("/transactions/#{id}")
|
26
|
+
end
|
27
|
+
|
28
|
+
def by_user(user_id, page: 1, per_page: 20)
|
29
|
+
@client.get("/users/#{user_id}/transactions", page: page, per_page: per_page)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Multiapi
|
2
|
+
module Resources
|
3
|
+
class User
|
4
|
+
def initialize(client)
|
5
|
+
@client = client
|
6
|
+
end
|
7
|
+
|
8
|
+
def list(page: 1, per_page: 20)
|
9
|
+
@client.get('/users', page: page, per_page: per_page)
|
10
|
+
end
|
11
|
+
|
12
|
+
def create(attributes)
|
13
|
+
@client.post('/users', attributes)
|
14
|
+
end
|
15
|
+
|
16
|
+
def find(id)
|
17
|
+
@client.get("/users/#{id}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def update(id, attributes)
|
21
|
+
@client.put("/users/#{id}", attributes)
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete(id)
|
25
|
+
@client.delete("/users/#{id}")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/multiapi.rb
ADDED
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: multiapi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- StackLab Digital
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-03-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.6'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
description: Uma biblioteca Ruby para integrar facilmente com a API Multiapi
|
98
|
+
email:
|
99
|
+
- contato@stacklab.digital
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- LICENSE.txt
|
105
|
+
- README.md
|
106
|
+
- lib/multiapi.rb
|
107
|
+
- lib/multiapi/client.rb
|
108
|
+
- lib/multiapi/resources/transaction.rb
|
109
|
+
- lib/multiapi/resources/user.rb
|
110
|
+
- lib/multiapi/version.rb
|
111
|
+
homepage: https://github.com/StackLab-Digital/multiapi
|
112
|
+
licenses:
|
113
|
+
- Proprietary
|
114
|
+
metadata: {}
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 2.7.0
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
requirements: []
|
130
|
+
rubygems_version: 3.5.11
|
131
|
+
signing_key:
|
132
|
+
specification_version: 4
|
133
|
+
summary: SDK oficial para a API Multiapi
|
134
|
+
test_files: []
|