qvo 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a410f49de574e0986e678809223ecb1434d62f3d9e6477fbdd674e73f12bd91c
4
+ data.tar.gz: 19fa711419c9072b83f5ac4b1411a8a23e4e7ee4b5b22658d8b748b73c2b9b2b
5
+ SHA512:
6
+ metadata.gz: cec535a54059dd02067865189a3675dc36d6fd081452cec6326d5e364987dfe86ad129d182d1af09a079ce918fa7d60f5a2bb46e325fbfd0a633e83453dede5e
7
+ data.tar.gz: 67a2805ed279182bd2ad7dc582b051297858dea3dc9cb3e6e0140c5a0ef0bc959618f47b164fb44d828ba959600e7a8589b0352bb119bde788432ea0aa89322a
@@ -0,0 +1,49 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+
4
+ require 'qvo/config'
5
+ require 'qvo/customers'
6
+ require 'qvo/cards'
7
+ require 'qvo/plans'
8
+ require 'qvo/subscriptions'
9
+ require 'qvo/transactions'
10
+
11
+ module QVO
12
+ extend self
13
+
14
+ def resolve_uri(method_uri)
15
+ Configuration.base_url + method_uri
16
+ end
17
+
18
+ def get(method_uri)
19
+ response = RestClient.get resolve_uri(method_uri), Configuration.authorization
20
+ JSON.parse response.body, :symbolize_names => true
21
+ end
22
+
23
+ def post(method_uri, data = {})
24
+ response = RestClient.post resolve_uri(method_uri), data, Configuration.authorization
25
+ JSON.parse response.body, :symbolize_names => true
26
+ end
27
+
28
+ def put(method_uri, data = {})
29
+ response = RestClient.put resolve_uri(method_uri), data, Configuration.authorization
30
+ JSON.parse response.body, :symbolize_names => true
31
+ end
32
+
33
+ def delete(method_uri)
34
+ response = RestClient.delete resolve_uri(method_uri), data, Configuration.authorization
35
+ JSON.parse response.body, :symbolize_names => true
36
+ end
37
+
38
+ def config (args = {})
39
+ if args[:credentials]
40
+ data = File.read args[:credentials]
41
+ json = JSON.parse data, :symbolize_names => true
42
+
43
+ Configuration.base_url = json[:base_url] || 'https://api.qvo.cl'
44
+ Configuration.api_token = json[:api_token]
45
+ else
46
+ yield Configuration
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,25 @@
1
+ module QVO
2
+ module Cards
3
+ extend self
4
+
5
+ def create_inscription(customer_id, data)
6
+ QVO.post "/customers/#{customer_id}/cards/inscriptions", data
7
+ end
8
+
9
+ def get_inscription(customer_id, inscription_uid)
10
+ QVO.get "/customers/#{customer_id}/cards/inscriptions/#{inscription_uid}"
11
+ end
12
+
13
+ def get(customer_id, card_id)
14
+ QVO.get "/customers/#{customer_id}/cards/#{card_id}"
15
+ end
16
+
17
+ def charge(customer_id, card_id, data)
18
+ QVO.post "/customers/#{customer_id}/cards/#{card_id}/charge", data
19
+ end
20
+
21
+ def list(customer_id)
22
+ QVO.get "/customers/#{customer_id}/cards"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ require 'json'
2
+
3
+ module QVO
4
+ module Configuration
5
+ attr_accessor :api_token, :base_url
6
+ extend self
7
+
8
+ def authorization
9
+ { Authorization: self.api_token }
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,25 @@
1
+ module QVO
2
+ module Customers
3
+ extend self
4
+
5
+ def create(data)
6
+ QVO.post "/customers", data
7
+ end
8
+
9
+ def get(customer_id)
10
+ QVO.get "/customers/#{customer_id}"
11
+ end
12
+
13
+ def update(customer_id, data)
14
+ QVO.put "/customers/#{customer_id}", data
15
+ end
16
+
17
+ def delete(customer_id)
18
+ QVO.delete "/customers/#{customer_id}"
19
+ end
20
+
21
+ def list
22
+ QVO.get "/customers"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module QVO
2
+ module Plans
3
+ extend self
4
+
5
+ def create(data)
6
+ QVO.post "/plans", data
7
+ end
8
+
9
+ def get(plan_id)
10
+ QVO.get "/plans/#{plan_id}"
11
+ end
12
+
13
+ def update(plan_id, data)
14
+ QVO.put "/plans/#{plan_id}", data
15
+ end
16
+
17
+ def delete(plan_id)
18
+ QVO.delete "/plans/#{plan_id}"
19
+ end
20
+
21
+ def list
22
+ QVO.get "/plans"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module QVO
2
+ module Subscriptions
3
+ extend self
4
+
5
+ def create(data)
6
+ QVO.post "/subscriptions", data
7
+ end
8
+
9
+ def get(subscription_id)
10
+ QVO.get "/subscriptions/#{subscription_id}"
11
+ end
12
+
13
+ def update(subscription_id, data)
14
+ QVO.put "/subscriptions/#{subscription_id}", data
15
+ end
16
+
17
+ def cancel(subscription_id)
18
+ QVO.delete "/subscriptions/#{subscription_id}"
19
+ end
20
+
21
+ def list
22
+ QVO.get "/subscriptions"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ module QVO
2
+ module Transactions
3
+ extend self
4
+
5
+ def get(transaction_id)
6
+ QVO.get "/transactions/#{transaction_id}"
7
+ end
8
+
9
+ def refund(transaction_id)
10
+ QVO.post "/transactions/#{transaction_id}/refund"
11
+ end
12
+
13
+ def list
14
+ QVO.get "/transactions"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module QVO
2
+ module Withdrawals
3
+ extend self
4
+
5
+ def create(data)
6
+ QVO.post "/withdrawals", data
7
+ end
8
+
9
+ def get(withdrawal_id)
10
+ QVO.get "/withdrawals/#{withdrawal_id}"
11
+ end
12
+
13
+ def list
14
+ QVO.get "/withdrawals"
15
+ end
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: qvo
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Felipe Cabrera
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: ''
28
+ email: fecabrera0@outlook.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/qvo.rb
34
+ - lib/qvo/cards.rb
35
+ - lib/qvo/config.rb
36
+ - lib/qvo/customers.rb
37
+ - lib/qvo/plans.rb
38
+ - lib/qvo/subscriptions.rb
39
+ - lib/qvo/transactions.rb
40
+ - lib/qvo/withdrawals.rb
41
+ homepage: https://github.com/fecabrera/qvo-client
42
+ licenses:
43
+ - BSD-2-Clause
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 2.7.7
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: QVO client
65
+ test_files: []