vpos 0.1.2 → 1.0.4
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 +4 -4
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile.lock +9 -9
- data/README.md +53 -34
- data/lib/vpos/version.rb +2 -2
- data/lib/vpos.rb +24 -88
- data/lib/vpos_module.rb +73 -0
- data/vpos.gemspec +8 -8
- metadata +32 -12
- data/azure-pipelines.yml +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4afd795dda51f97e50f6cd03781acca39a4f5d36619bddfe55d4515ad8506f5f
|
4
|
+
data.tar.gz: 3f7553fc7b5705c86c074c0e76fce57528683cb81ca1c3ec1192e6ef6f00e9c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1d4d000a8aa386223660b120a015dd0bb45a7092355d22d7ad097a4add8bd31314891f976faca280c07c88bc2f8b234d0ce07db68265bb244331ca926ba10f2
|
7
|
+
data.tar.gz: 817be562e7dfcacaf0bbad89a71bbd6a2e9f5c0b2385b360803795cb0d1293f3d0dcfb01ac3a55b11d4052af74dea307fa58ef56841426dbbd3377c6eb8be5ba
|
data/.github/workflows/ruby.yml
CHANGED
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.8
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
vpos (0.
|
4
|
+
vpos (1.0.3)
|
5
5
|
httparty (~> 0.18.1)
|
6
|
-
rspec (~> 3.9.0)
|
6
|
+
rspec (~> 3.9, >= 3.9.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
@@ -14,30 +14,30 @@ GEM
|
|
14
14
|
multi_xml (>= 0.5.2)
|
15
15
|
mime-types (3.3.1)
|
16
16
|
mime-types-data (~> 3.2015)
|
17
|
-
mime-types-data (3.
|
17
|
+
mime-types-data (3.2021.0225)
|
18
18
|
multi_xml (0.6.0)
|
19
|
-
rake (
|
19
|
+
rake (12.3.3)
|
20
20
|
rspec (3.9.0)
|
21
21
|
rspec-core (~> 3.9.0)
|
22
22
|
rspec-expectations (~> 3.9.0)
|
23
23
|
rspec-mocks (~> 3.9.0)
|
24
24
|
rspec-core (3.9.3)
|
25
25
|
rspec-support (~> 3.9.3)
|
26
|
-
rspec-expectations (3.9.
|
26
|
+
rspec-expectations (3.9.4)
|
27
27
|
diff-lcs (>= 1.2.0, < 2.0)
|
28
28
|
rspec-support (~> 3.9.0)
|
29
29
|
rspec-mocks (3.9.1)
|
30
30
|
diff-lcs (>= 1.2.0, < 2.0)
|
31
31
|
rspec-support (~> 3.9.0)
|
32
|
-
rspec-support (3.9.
|
32
|
+
rspec-support (3.9.4)
|
33
33
|
|
34
34
|
PLATFORMS
|
35
35
|
ruby
|
36
36
|
|
37
37
|
DEPENDENCIES
|
38
|
-
bundler (~> 2.
|
39
|
-
rake (~>
|
38
|
+
bundler (~> 2.2, >= 2.2.3)
|
39
|
+
rake (~> 12.3, >= 12.3.3)
|
40
40
|
vpos!
|
41
41
|
|
42
42
|
BUNDLED WITH
|
43
|
-
2.
|
43
|
+
2.2.6
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# vPOS Ruby
|
2
|
-
|
3
|
-
](https://github.com/v-pos/vpos-ruby/actions/workflows/ruby.yml)
|
3
|
+
[](https://badge.fury.io/rb/vpos)
|
4
|
+
[](https://www.nextbss.co.ao)
|
5
5
|
|
6
6
|
This ruby library helps you easily interact with the vPOS API,
|
7
7
|
Allowing merchants apps/services to request a payment from a client through his/her mobile phone number.
|
8
8
|
|
9
9
|
The service currently works for solutions listed below:
|
10
10
|
|
11
|
-
EMIS (Multicaixa Express)
|
11
|
+
- EMIS GPO (Multicaixa Express)
|
12
12
|
|
13
13
|
Want to know more about how we are empowering merchants in Angola? See our [website](https://vpos.ao)
|
14
14
|
|
@@ -23,50 +23,74 @@ See our documentation on [developer.vpos.ao](https://developer.vpos.ao)
|
|
23
23
|
|
24
24
|
## Installation
|
25
25
|
```ruby
|
26
|
-
gem 'vpos'
|
26
|
+
gem 'vpos', '~> 1.0.0'
|
27
27
|
```
|
28
28
|
|
29
29
|
or
|
30
30
|
|
31
31
|
```ruby
|
32
|
-
gem install
|
32
|
+
gem install vpos
|
33
33
|
```
|
34
34
|
|
35
35
|
### Configuration
|
36
|
-
This ruby library requires you
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
| --- | --- |
|
41
|
-
| `GPO_POS_ID` | The Point of Sale ID provided by EMIS |
|
42
|
-
| `GPO_SUPERVISOR_CARD` | The Supervisor card ID provided by EMIS |
|
43
|
-
| `MERCHANT_VPOS_TOKEN` | The API token provided by vPOS |
|
44
|
-
| `PAYMENT_CALLBACK_URL` | The URL that will handle payment notifications |
|
45
|
-
| `REFUND_CALLBACK_URL` | The URL that will handle refund notifications |
|
46
|
-
| `VPOS_ENVIRONMENT` | The vPOS environment, leave empty for `sandbox` mode and use `"prd"` for `production`. |
|
36
|
+
This ruby library requires you to have:
|
37
|
+
- POS_ID provided by EMIS that can be requested through your support bank.
|
38
|
+
- Supervisor Card provided by EMIS that can be requested through your support bank.
|
39
|
+
- Token provided by vPOS that can be generated through vPOS [merchant](https://merchant.vpos.ao) portal.
|
47
40
|
|
48
41
|
Don't have this information? [Talk to us](suporte@vpos.ao)
|
49
42
|
|
50
|
-
Given you have
|
43
|
+
Given you have all the requirements above, you will now
|
51
44
|
be able to authenticate and communicate effectively with our API using this library.
|
52
45
|
|
53
|
-
The next section will show the various
|
46
|
+
The next section will show the various actions that can be performed by you, the merchant.
|
47
|
+
|
48
|
+
## Use
|
49
|
+
### Create Instance
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
require 'vpos'
|
53
|
+
|
54
|
+
# use the default environment variables option
|
55
|
+
merchant = Vpos.new
|
56
|
+
|
57
|
+
# or use optional arguments option
|
58
|
+
merchant = Vpos.new(token: 'your_token_here', environment: 'PRD')
|
59
|
+
```
|
60
|
+
|
61
|
+
#### Environment variables
|
62
|
+
| Variable | Description | Required |
|
63
|
+
| --- | --- | --- |
|
64
|
+
| `GPO_POS_ID` | The Point of Sale ID provided by EMIS | true |
|
65
|
+
| `GPO_SUPERVISOR_CARD` | The Supervisor card ID provided by EMIS | true |
|
66
|
+
| `MERCHANT_VPOS_TOKEN` | The API token provided by vPOS | true |
|
67
|
+
| `PAYMENT_CALLBACK_URL` | The URL that will handle payment notifications | false |
|
68
|
+
| `REFUND_CALLBACK_URL` | The URL that will handle refund notifications | false |
|
69
|
+
|
70
|
+
or using one of the optional arguments
|
71
|
+
|
72
|
+
#### Optional Arguments
|
73
|
+
| Argument | Description | Type |
|
74
|
+
| --- | --- | --- |
|
75
|
+
| `token` | Token generated at [vPOS](https://merchant.vpos.ao) dashboard | `string`
|
76
|
+
| `pos_id` | Merchant POS ID provided by EMIS | `string`
|
77
|
+
| `supervisor_card` | Merchant Supervisor Card number provided by EMIS | `string`
|
78
|
+
| `payment_callback_url` | Merchant application JSON endpoint to accept the callback payment response | `string`
|
79
|
+
| `refund_callback_url` | Merchant application JSON endpoint to accept the callback refund response | `string`
|
80
|
+
| `environment` | The vPOS environment, leave empty for `sandbox` mode and use `"PRD"` for `production`. | `string` |
|
54
81
|
|
55
82
|
### Get all Transactions
|
56
83
|
This endpoint retrieves all transactions.
|
57
84
|
|
58
85
|
```ruby
|
59
|
-
|
60
|
-
transactions = Vpos.get_transactions
|
86
|
+
transaction = merchant.get_transactions
|
61
87
|
```
|
62
88
|
|
63
89
|
### Get a specific Transaction
|
64
90
|
Retrieves a transaction given a valid transaction ID.
|
65
91
|
|
66
|
-
|
67
92
|
```ruby
|
68
|
-
|
69
|
-
transactions = Vpos.get_transaction("1jHbXEbRTIbbwaoJ6w06nLcRG7X")
|
93
|
+
transaction = merchant.get_transaction('1jHbXEbRTIbbwaoJ6w06nLcRG7X')
|
70
94
|
```
|
71
95
|
|
72
96
|
| Argument | Description | Type |
|
@@ -78,22 +102,19 @@ Creates a new payment transaction given a valid mobile number associated with a
|
|
78
102
|
and a valid amount.
|
79
103
|
|
80
104
|
```ruby
|
81
|
-
|
82
|
-
payment = Vpos.new_payment("900111222", "123.45")
|
105
|
+
payment = merchant.new_payment('900111222', '123.45')
|
83
106
|
```
|
84
107
|
|
85
108
|
| Argument | Description | Type |
|
86
109
|
| --- | --- | --- |
|
87
110
|
| `mobile` | The mobile number of the client who will pay | `string`
|
88
|
-
| `amount` | The amount the client should pay, eg. "259.99", "
|
111
|
+
| `amount` | The amount the client should pay, eg. "259.99", "259000.00" | `string`
|
89
112
|
|
90
113
|
### Request Refund
|
91
114
|
Given an existing `parent_transaction_id`, request a refund.
|
92
115
|
|
93
116
|
```ruby
|
94
|
-
|
95
|
-
|
96
|
-
refund = Vpos.new_refund("1kTFGhJH8i58uD9MdJpMjWnoE")
|
117
|
+
refund = merchant.new_refund('1kTFGhJH8i58uD9MdJpMjWnoE')
|
97
118
|
```
|
98
119
|
|
99
120
|
| Argument | Description | Type |
|
@@ -106,19 +127,17 @@ Poll the status of a transaction given a valid `request_id`.
|
|
106
127
|
Note: The `request_id` in this context is essentially the `transaction_id` of an existing request.
|
107
128
|
|
108
129
|
```ruby
|
109
|
-
|
110
|
-
transactions = Vpos.get_request("1jHbXEbRTIbbwaoJ6w06nLcRG7X")
|
130
|
+
transaction = merchant.get_request('1jHbXEbRTIbbwaoJ6w06nLcRG7X')
|
111
131
|
```
|
112
132
|
|
113
133
|
| Argument | Description | Type |
|
114
134
|
| --- | --- | --- |
|
115
135
|
| `request_id` | The ID of transaction you wish to poll | `string`
|
116
136
|
|
117
|
-
|
118
137
|
### Have any doubts?
|
119
138
|
In case of any doubts, bugs, or the like, please leave an issue. We would love to help.
|
120
139
|
|
121
140
|
License
|
122
141
|
----------------
|
123
142
|
|
124
|
-
The library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
143
|
+
The library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/lib/vpos/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "0.
|
1
|
+
module VposModule
|
2
|
+
VERSION = "1.0.4"
|
3
3
|
end
|
data/lib/vpos.rb
CHANGED
@@ -1,102 +1,38 @@
|
|
1
|
-
|
2
|
-
require "httparty"
|
3
|
-
require "securerandom"
|
1
|
+
require_relative "vpos_module"
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
include HTTParty
|
8
|
-
follow_redirects false
|
3
|
+
class Vpos
|
4
|
+
include VposModule
|
9
5
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
def initialize(token: set_token, pos_id: default_pos_id, supervisor_card: default_supervisor_card, payment_callback_url: default_payment_callback_url, refund_callback_url: default_refund_callback_url)
|
7
|
+
@token = token
|
8
|
+
@pos_id = pos_id
|
9
|
+
@supervisor_card = supervisor_card
|
10
|
+
@payment_callback_url = payment_callback_url
|
11
|
+
@refund_callback_url = refund_callback_url
|
15
12
|
end
|
16
13
|
|
17
|
-
|
18
|
-
content = set_headers
|
19
|
-
content[:body] = {type: "refund", parent_transaction_id: transaction_id, supervisor_card: supervisor_card, callback_url: callback_url}.to_json
|
20
|
-
request = post("#{host}/transactions", content)
|
21
|
-
return_vpos_object(request)
|
22
|
-
end
|
14
|
+
private
|
23
15
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
16
|
+
def default_pos_id
|
17
|
+
pos_id = ENV['GPO_POS_ID']
|
18
|
+
"#{pos_id}".to_i
|
27
19
|
end
|
28
20
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
21
|
+
def default_supervisor_card
|
22
|
+
supervisor_card = ENV['GPO_SUPERVISOR_CARD']
|
23
|
+
"#{supervisor_card}"
|
32
24
|
end
|
33
25
|
|
34
|
-
def
|
35
|
-
|
36
|
-
|
37
|
-
else
|
38
|
-
if request[:status] == 202
|
39
|
-
request[:location].gsub("/api/v1/requests/", "")
|
40
|
-
else
|
41
|
-
request[:location].gsub("/api/v1/transactions/", "")
|
42
|
-
end
|
43
|
-
end
|
26
|
+
def set_token
|
27
|
+
token = ENV['MERCHANT_VPOS_TOKEN']
|
28
|
+
"Bearer #{token}"
|
44
29
|
end
|
45
30
|
|
46
|
-
def
|
47
|
-
|
48
|
-
return_vpos_object(request)
|
31
|
+
def default_payment_callback_url
|
32
|
+
ENV['PAYMENT_CALLBACK_URL']
|
49
33
|
end
|
50
34
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
when 200, 201
|
55
|
-
return {status: request.response.code.to_i, message: request.response.message, data: request.parsed_response}
|
56
|
-
when 202, 303
|
57
|
-
return {status: request.response.code.to_i, message: request.response.message, location: request.headers["location"]}
|
58
|
-
else
|
59
|
-
return {status: request.response.code.to_i, message: request.response.message, details: request.parsed_response["errors"]}
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.set_headers
|
64
|
-
content = {}
|
65
|
-
headers = {'Content-Type' => "application/json", 'Accept' => "application/json", 'Authorization' => set_token, 'Idempotency-Key' => SecureRandom.uuid}
|
66
|
-
content[:headers] = headers
|
67
|
-
return content
|
68
|
-
end
|
69
|
-
|
70
|
-
def self.default_pos_id
|
71
|
-
pos_id = ENV["GPO_POS_ID"]
|
72
|
-
return "#{pos_id}".to_i
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.default_supervisor_card
|
76
|
-
supervisor_card = ENV["GPO_SUPERVISOR_CARD"]
|
77
|
-
return "#{supervisor_card}"
|
78
|
-
end
|
79
|
-
|
80
|
-
def self.set_token
|
81
|
-
token = ENV["MERCHANT_VPOS_TOKEN"]
|
82
|
-
return "Bearer #{token}"
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.default_payment_callback_url
|
86
|
-
url = ENV["PAYMENT_CALLBACK_URL"]
|
87
|
-
return url
|
88
|
-
end
|
89
|
-
|
90
|
-
def self.default_refund_callback_url
|
91
|
-
url = ENV["REFUND_CALLBACK_URL"]
|
92
|
-
return url
|
93
|
-
end
|
94
|
-
|
95
|
-
def self.host
|
96
|
-
if ENV["VPOS_ENVIRONMENT"] == "prd"
|
97
|
-
return "https://api.vpos.ao/api/v1"
|
98
|
-
else
|
99
|
-
return "https://sandbox.vpos.ao/api/v1"
|
100
|
-
end
|
101
|
-
end
|
35
|
+
def default_refund_callback_url
|
36
|
+
ENV['REFUND_CALLBACK_URL']
|
37
|
+
end
|
102
38
|
end
|
data/lib/vpos_module.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require "vpos/version"
|
2
|
+
require "httparty"
|
3
|
+
require "securerandom"
|
4
|
+
|
5
|
+
module VposModule
|
6
|
+
class Error < StandardError; end
|
7
|
+
include HTTParty
|
8
|
+
follow_redirects false
|
9
|
+
|
10
|
+
def new_payment(customer, amount, pos_id: @pos_id, callback_url: @payment_callback_url)
|
11
|
+
content = set_headers
|
12
|
+
content[:body] = {type:"payment", pos_id: pos_id, mobile: customer, amount: amount, callback_url: callback_url}.to_json
|
13
|
+
request = HTTParty.post("#{host}/transactions", content)
|
14
|
+
return_vpos_object(request)
|
15
|
+
end
|
16
|
+
|
17
|
+
def new_refund(transaction_id, supervisor_card: @supervisor_card, callback_url: @refund_callback_url)
|
18
|
+
content = set_headers
|
19
|
+
content[:body] = {type: "refund", parent_transaction_id: transaction_id, supervisor_card: supervisor_card, callback_url: callback_url}.to_json
|
20
|
+
request = HTTParty.post("#{host}/transactions", content)
|
21
|
+
return_vpos_object(request)
|
22
|
+
end
|
23
|
+
|
24
|
+
def get_transaction(transaction_id)
|
25
|
+
request = HTTParty.get("#{host}/transactions/#{transaction_id}", set_headers)
|
26
|
+
return_vpos_object(request)
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_transactions
|
30
|
+
request = HTTParty.get("#{host}/transactions", set_headers)
|
31
|
+
return_vpos_object(request)
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_request_id(response)
|
35
|
+
if response[:location].nil?
|
36
|
+
HTTParty.get("#{host}/references/invalid", set_headers)
|
37
|
+
else
|
38
|
+
if response[:status_code] == 202
|
39
|
+
response[:location].gsub("/api/v1/requests/", "")
|
40
|
+
else
|
41
|
+
response[:location].gsub("/api/v1/transactions/", "")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_request(request_id)
|
47
|
+
request = HTTParty.get("#{host}/requests/#{request_id}", set_headers)
|
48
|
+
return_vpos_object(request)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
def return_vpos_object(request)
|
53
|
+
case request.response.code.to_i
|
54
|
+
when 200, 201
|
55
|
+
return {status_code: request.response.code.to_i, message: request.response.message, data: request.parsed_response}
|
56
|
+
when 202, 303
|
57
|
+
return {status_code: request.response.code.to_i, message: request.response.message, location: request.headers["location"]}
|
58
|
+
else
|
59
|
+
return {status_code: request.response.code.to_i, message: request.response.message, details: request.parsed_response["errors"]}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def set_headers
|
64
|
+
content = {}
|
65
|
+
headers = {'Content-Type' => "application/json", 'Accept' => "application/json", 'Authorization' => @token, 'Idempotency-Key' => SecureRandom.uuid}
|
66
|
+
content[:headers] = headers
|
67
|
+
content
|
68
|
+
end
|
69
|
+
|
70
|
+
def host
|
71
|
+
"https://vpos.ao/api/v1"
|
72
|
+
end
|
73
|
+
end
|
data/vpos.gemspec
CHANGED
@@ -4,13 +4,13 @@ require "vpos/version"
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "vpos"
|
7
|
-
spec.version =
|
7
|
+
spec.version = VposModule::VERSION
|
8
8
|
spec.authors = ["Sergio Maziano"]
|
9
|
-
spec.email = ["sergio@
|
9
|
+
spec.email = ["sergio.maziano@vpos.ao"]
|
10
10
|
|
11
11
|
spec.summary = %q{The one stop shop for online payments in Angola.}
|
12
|
-
spec.description = %q{The one stop shop for online payments in Angola
|
13
|
-
spec.homepage = "https://github.com/
|
12
|
+
spec.description = %q{The one stop shop for online payments in Angola, allowing you to process payments requests from EMIS GPO through vPOS.}
|
13
|
+
spec.homepage = "https://github.com/v-pos/vpos-ruby"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
# Specify which files should be added to the gem when it is released.
|
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
-
spec.add_development_dependency "bundler",
|
26
|
-
spec.add_development_dependency
|
25
|
+
spec.add_development_dependency "bundler", '~> 2.2', '>= 2.2.3'
|
26
|
+
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
|
27
27
|
spec.add_dependency "httparty", "~> 0.18.1"
|
28
|
-
spec.add_dependency "rspec",
|
29
|
-
end
|
28
|
+
spec.add_dependency "rspec", '~> 3.9', ">= 3.9.0"
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vpos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergio Maziano
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: '2.2'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.2.3
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
29
|
+
version: '2.2'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.2.3
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '12.3'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 12.3.3
|
34
43
|
type: :development
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
47
|
- - "~>"
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
49
|
+
version: '12.3'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 12.3.3
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: httparty
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -57,6 +69,9 @@ dependencies:
|
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
71
|
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '3.9'
|
74
|
+
- - ">="
|
60
75
|
- !ruby/object:Gem::Version
|
61
76
|
version: 3.9.0
|
62
77
|
type: :runtime
|
@@ -64,31 +79,35 @@ dependencies:
|
|
64
79
|
version_requirements: !ruby/object:Gem::Requirement
|
65
80
|
requirements:
|
66
81
|
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.9'
|
84
|
+
- - ">="
|
67
85
|
- !ruby/object:Gem::Version
|
68
86
|
version: 3.9.0
|
69
|
-
description: The one stop shop for online payments in Angola
|
70
|
-
|
87
|
+
description: The one stop shop for online payments in Angola, allowing you to process
|
88
|
+
payments requests from EMIS GPO through vPOS.
|
71
89
|
email:
|
72
|
-
- sergio@
|
90
|
+
- sergio.maziano@vpos.ao
|
73
91
|
executables: []
|
74
92
|
extensions: []
|
75
93
|
extra_rdoc_files: []
|
76
94
|
files:
|
77
95
|
- ".github/workflows/ruby.yml"
|
78
96
|
- ".gitignore"
|
97
|
+
- ".ruby-version"
|
79
98
|
- Gemfile
|
80
99
|
- Gemfile.lock
|
81
100
|
- LICENSE.txt
|
82
101
|
- README.md
|
83
102
|
- Rakefile
|
84
|
-
- azure-pipelines.yml
|
85
103
|
- bin/console
|
86
104
|
- bin/setup
|
87
105
|
- lib/vpos.rb
|
88
106
|
- lib/vpos/version.rb
|
107
|
+
- lib/vpos_module.rb
|
89
108
|
- tags
|
90
109
|
- vpos.gemspec
|
91
|
-
homepage: https://github.com/
|
110
|
+
homepage: https://github.com/v-pos/vpos-ruby
|
92
111
|
licenses:
|
93
112
|
- MIT
|
94
113
|
metadata: {}
|
@@ -107,7 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
126
|
- !ruby/object:Gem::Version
|
108
127
|
version: '0'
|
109
128
|
requirements: []
|
110
|
-
|
129
|
+
rubyforge_project:
|
130
|
+
rubygems_version: 2.7.6.2
|
111
131
|
signing_key:
|
112
132
|
specification_version: 4
|
113
133
|
summary: The one stop shop for online payments in Angola.
|
data/azure-pipelines.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# Ruby
|
2
|
-
# Package your Ruby project.
|
3
|
-
# Add steps that install rails, analyze code, save build artifacts, deploy, and more:
|
4
|
-
# https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
|
5
|
-
|
6
|
-
trigger:
|
7
|
-
- main
|
8
|
-
|
9
|
-
pool:
|
10
|
-
vmImage: 'ubuntu-latest'
|
11
|
-
|
12
|
-
steps:
|
13
|
-
- task: UseRubyVersion@0
|
14
|
-
inputs:
|
15
|
-
versionSpec: '>= 2.5'
|
16
|
-
|
17
|
-
- script: |
|
18
|
-
gem install bundler
|
19
|
-
bundle install --retry=3 --jobs=4
|
20
|
-
displayName: 'Install Bundler'
|
21
|
-
|
22
|
-
- script: |
|
23
|
-
gem install rspec
|
24
|
-
|
25
|
-
- script: bundle exec rspec
|
26
|
-
displayName: 'Run Tests'
|