airvend 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/.byebug_history +19 -0
- data/.gitignore +13 -0
- data/.rspec +3 -0
- data/.rubocop.yml +10 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +148 -0
- data/LICENSE.txt +21 -0
- data/README.md +346 -0
- data/Rakefile +12 -0
- data/airvend.gemspec +43 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/airvend.rb +105 -0
- data/lib/airvend/airvend_objects/airtime.rb +28 -0
- data/lib/airvend/airvend_objects/internet.rb +45 -0
- data/lib/airvend/airvend_objects/power.rb +26 -0
- data/lib/airvend/airvend_objects/television.rb +29 -0
- data/lib/airvend/base/base.rb +180 -0
- data/lib/airvend/base_endpoints.rb +21 -0
- data/lib/airvend/errors.rb +37 -0
- data/lib/airvend/upper_case_string.rb +5 -0
- data/lib/airvend/vend.rb +43 -0
- data/lib/airvend/version.rb +5 -0
- metadata +166 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
module BASE_ENDPOINTS
|
2
|
+
LIVE_URL = "http://airvendng.net"
|
3
|
+
SANDBOX_URL = "http://test.airvendng.net"
|
4
|
+
# CHARGE_ENDPOINT = "flwv3-pug/getpaidx/api/charge"
|
5
|
+
# TOKENISED_CHARGE_ENDPOINT = "flwv3-pug/getpaidx/api/tokenized/charge"
|
6
|
+
# PREAUTH_CHARGE_ENDPOINT = "flwv3-pug/getpaidx/api/tokenized/preauth_charge"
|
7
|
+
# CAPTURE_ENDPOINT = "flwv3-pug/getpaidx/api/capture"
|
8
|
+
# REFUND_VOID_ENDPOINT = "flwv3-pug/getpaidx/api/refundorvoid"
|
9
|
+
# CARD_VALIDATE_ENDPOINT = "flwv3-pug/getpaidx/api/validatecharge"
|
10
|
+
# ACCOUNT_VALIDATE_ENDPOINT = "flwv3-pug/getpaidx/api/validate"
|
11
|
+
# VERIFY_ENDPOINT = "flwv3-pug/getpaidx/api/v2/verify"
|
12
|
+
# PAYMENT_PLANS_ENDPOINT = "v2/gpx/paymentplans"
|
13
|
+
# SUBSCRIPTIONS_ENDPOINT = "v2/gpx/subscriptions"
|
14
|
+
# TRANSFER_ENDPOINT = "v2/gpx/transfers"
|
15
|
+
# SUBACCOUNT_ENDPOINT = "v2/gpx/subaccounts"
|
16
|
+
# GET_FEE_ENDPOINT = "v2/gpx/transfers/fee"
|
17
|
+
# GET_BALANCE_ENDPOINT = "v2/gpx/balance"
|
18
|
+
# FETCH_ENDPOINT = "v2/gpx/transfers"
|
19
|
+
# REFUND_ENDPOINT = "gpx/merchant/transactions"
|
20
|
+
# BANKS_ENDPOINT = "flwv3-pug/getpaidx/api/flwpbf-banks.js"
|
21
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
class AirvendServerError < StandardError
|
3
|
+
attr_reader :response
|
4
|
+
def initialize(response=nil)
|
5
|
+
@response = response
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class AirvendBadUserError < StandardError
|
10
|
+
end
|
11
|
+
|
12
|
+
class AirvendBadPassError < StandardError
|
13
|
+
end
|
14
|
+
|
15
|
+
class AirvendBadKeyError < StandardError
|
16
|
+
end
|
17
|
+
|
18
|
+
class AirvendInvalidProvider < StandardError
|
19
|
+
end
|
20
|
+
|
21
|
+
class AirvendConflictError < StandardError
|
22
|
+
end
|
23
|
+
|
24
|
+
class AirvendBadRequestError < StandardError
|
25
|
+
end
|
26
|
+
|
27
|
+
class AirvendUnauthorizedError < StandardError
|
28
|
+
end
|
29
|
+
|
30
|
+
class AirvendNotFoundError < StandardError
|
31
|
+
end
|
32
|
+
|
33
|
+
class AirvendIncorrectPayload < StandardError
|
34
|
+
end
|
35
|
+
|
36
|
+
class AirvendUnknownClientError < StandardError
|
37
|
+
end
|
data/lib/airvend/vend.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
module Vend
|
2
|
+
|
3
|
+
def vendAdapter(api_hash, details)
|
4
|
+
conn = connect(api_hash)
|
5
|
+
response = conn.post do |req|
|
6
|
+
req.url '/secured/seamless/vend/'
|
7
|
+
req.headers['hash'] = api_hash
|
8
|
+
req.body = details.to_json
|
9
|
+
end
|
10
|
+
return response
|
11
|
+
end
|
12
|
+
|
13
|
+
def productAdapter(api_hash, details)
|
14
|
+
conn = connect(api_hash)
|
15
|
+
response = conn.post do |req|
|
16
|
+
req.url '/secured/seamless/products/'
|
17
|
+
req.headers['hash'] = api_hash
|
18
|
+
req.body = details.to_json
|
19
|
+
end
|
20
|
+
return response
|
21
|
+
end
|
22
|
+
|
23
|
+
def verifyAdapter(api_hash, details)
|
24
|
+
conn = connect(api_hash)
|
25
|
+
response = conn.post do |req|
|
26
|
+
req.url '/secured/seamless/verify/'
|
27
|
+
req.headers['hash'] = api_hash
|
28
|
+
req.body = details.to_json
|
29
|
+
end
|
30
|
+
return response
|
31
|
+
end
|
32
|
+
|
33
|
+
def logResponse(response)
|
34
|
+
if response.status == 200
|
35
|
+
print "Was Successful, Ok"
|
36
|
+
elsif response.status.between?(500,505)
|
37
|
+
print "----- #{response.status} The Problem is from us, please try again later -----"
|
38
|
+
elsif response.status.between?(400,417)
|
39
|
+
print "----- #{response.status} Check the data you want to subscribe -----"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: airvend
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Uchenna Mba
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-06-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dotenv-rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: byebug
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httparty
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.18'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.18'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: json
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.5'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: faraday
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.4'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: faraday-detailed_logger
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.3'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: typhoeus
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.4'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.4'
|
111
|
+
description: This gem makes it easy for businesses or individuals to implement vending
|
112
|
+
of Airtime, Data, Electricity, Utilities & Television subscriptions to their application
|
113
|
+
email:
|
114
|
+
- hey@uche.io
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".byebug_history"
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
122
|
+
- ".rubocop.yml"
|
123
|
+
- CODE_OF_CONDUCT.md
|
124
|
+
- Gemfile
|
125
|
+
- Gemfile.lock
|
126
|
+
- LICENSE.txt
|
127
|
+
- README.md
|
128
|
+
- Rakefile
|
129
|
+
- airvend.gemspec
|
130
|
+
- bin/console
|
131
|
+
- bin/setup
|
132
|
+
- lib/airvend.rb
|
133
|
+
- lib/airvend/airvend_objects/airtime.rb
|
134
|
+
- lib/airvend/airvend_objects/internet.rb
|
135
|
+
- lib/airvend/airvend_objects/power.rb
|
136
|
+
- lib/airvend/airvend_objects/television.rb
|
137
|
+
- lib/airvend/base/base.rb
|
138
|
+
- lib/airvend/base_endpoints.rb
|
139
|
+
- lib/airvend/errors.rb
|
140
|
+
- lib/airvend/upper_case_string.rb
|
141
|
+
- lib/airvend/vend.rb
|
142
|
+
- lib/airvend/version.rb
|
143
|
+
homepage: https://github.com/urchymanny/airvend-rails
|
144
|
+
licenses:
|
145
|
+
- MIT
|
146
|
+
metadata: {}
|
147
|
+
post_install_message:
|
148
|
+
rdoc_options: []
|
149
|
+
require_paths:
|
150
|
+
- lib
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 2.3.0
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
requirements: []
|
162
|
+
rubygems_version: 3.2.3
|
163
|
+
signing_key:
|
164
|
+
specification_version: 4
|
165
|
+
summary: Gem that provides access to bill payment & subscription in Nigeria.
|
166
|
+
test_files: []
|