orchard-api-client-anm 0.1.2 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b3a6c24aa68bebbe5c904d4c2ce159ae7e89ba836a68dc0660107662d2bb381
4
- data.tar.gz: 2f6247a62275c2a9bae6123a52450e5b291529101ea01dcfff943b39560a09f8
3
+ metadata.gz: 5ba7e7eb2a45c832407e65c1303e54ed05fba25ab2285cee00a2e9fcb0f4de45
4
+ data.tar.gz: be0c19aedd32b4997338ff35a84cdada2dfd18b91e80d977e241df75f513b323
5
5
  SHA512:
6
- metadata.gz: d651c79664926b55f65d5a85d66979aea3008ae7a52383f2242be392c068a4dfca2b35bb31e9ea6c1cf0aa64cf282c8cdc9b416cebfc3afffce15e0fe9d8b223
7
- data.tar.gz: 0ca6f77edc0d1e0a11a2cffedfc456a32d988c9ff4fe424725fc083f0a19e0426fe80bcd628f394c2b463806ea9c4f68467830f2978204847f6cac49dee6eb57
6
+ metadata.gz: 6ace832e209f9a435860fd531e0dfb835f5e569a24a39b736a19963f4253d5062d75c969513569bd46482897957fbd81a286db17f906dcd580ea0cdc8126d692
7
+ data.tar.gz: 78b803719e98c5630eb299385a76af36cd33630fd0ef3c78f340782afc5e09fa3c7d31072d337e36215d12032cdd5cb022edc36065d09f2ddbff2f8fd69205dd
data/.rubocop.yml CHANGED
@@ -18,4 +18,7 @@ Style/Documentation:
18
18
  Enabled: false
19
19
 
20
20
  Metrics/MethodLength:
21
- Max: 15
21
+ Max: 15
22
+
23
+ Metrics/BlockLength:
24
+ AllowedMethods: ['describe', 'context', 'it']
data/Gemfile CHANGED
@@ -6,9 +6,3 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
-
10
- gem "rspec", "~> 3.0"
11
-
12
- gem "rubocop", "~> 1.21"
13
-
14
- gem "faraday", "~> 2.6"
data/README.md CHANGED
@@ -41,9 +41,9 @@ If bundler is not being used to manage dependencies, install the gem by executin
41
41
  nw = allowed_parameters['MTN','VOD','AIR']
42
42
 
43
43
  payment_request_payload = {
44
- customer_number: '',
45
- reference: '',
46
- amount: '',
44
+ customer_number: '0550000000',
45
+ reference: 'AppsNmobile Pay',
46
+ amount: '1',
47
47
  exttrid: processing_id,
48
48
  nw: 'MTN',
49
49
  trans_type: 'CTM',
@@ -53,16 +53,16 @@ If bundler is not being used to manage dependencies, install the gem by executin
53
53
  voucher_code: ''
54
54
  }
55
55
 
56
- response = client.send_payment_request(payload, request_configurations)
56
+ response = client.send_payment_request(payment_request_payload, request_configurations)
57
57
 
58
58
  #Send Sms
59
59
  sms_payload = {
60
- sender_id: '',
61
- recipient_number: '',
62
- msg_body: '',
60
+ sender_id: 'ANM',
61
+ recipient_number: '0550000000',
62
+ msg_body: 'Sample text message',
63
63
  trans_type: 'SMS',
64
64
  service_id: ENV['SERVICE_ID']
65
65
  }
66
66
 
67
- response = client.send_sms(payload)
67
+ response = client.send_sms(sms_payload)
68
68
  ```
@@ -20,8 +20,8 @@ module Orchard
20
20
  OpenSSL::HMAC.hexdigest(digest, @secret_token.to_s, @payload.to_json)
21
21
  end
22
22
 
23
- def make_post_request
24
- response = @connection.post do |request|
23
+ def make_request(method)
24
+ response = @connection.send(method) do |request|
25
25
  request.url @endpoint
26
26
  request.options.timeout = @timeout
27
27
  request.body = @payload.to_json
@@ -30,9 +30,13 @@ module Orchard
30
30
 
31
31
  JSON.parse(response.body)
32
32
  rescue StandardError => e
33
+ error_response(e)
34
+ end
35
+
36
+ def default_response(error)
33
37
  {
34
38
  "res_code" => "999",
35
- "res_desc" => e.message
39
+ "res_desc" => error.message
36
40
  }
37
41
  end
38
42
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orchard
4
+ module API
5
+ class CheckTransactionStatus < Orchard::API::Base
6
+ def call
7
+ @endpoint = Orchard::API::Constants::CHECK_TRANSACTION_STATUS_ENDPOINT
8
+ make_request(:post)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -5,7 +5,7 @@ module Orchard
5
5
  class SendPaymentRequest < Orchard::API::Base
6
6
  def call
7
7
  @endpoint = Orchard::API::Constants::SEND_PAYMENT_REQUEST_ENDPOINT
8
- make_post_request
8
+ make_request(:post)
9
9
  end
10
10
  end
11
11
  end
@@ -7,7 +7,7 @@ module Orchard
7
7
  format_recipients_number
8
8
  generate_unique_id
9
9
  @endpoint = Orchard::API::Constants::SEND_SMS_ENDPOINT
10
- make_post_request
10
+ make_request(:post)
11
11
  end
12
12
 
13
13
  def format_recipients_number
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orchard
4
+ module API
5
+ class ServiceLookupRequest < Orchard::API::Base
6
+ def call
7
+ @endpoint = Orchard::API::Constants::SERVICE_LOOKUP_REQUEST_ENDPOINT
8
+ make_request(:get)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -6,21 +6,29 @@ module Orchard
6
6
  @secret_token = params[:secret_token]
7
7
  @client_token = params[:client_token]
8
8
  @url = params[:url]
9
- @connection = create_connection
9
+ create_connection
10
10
  end
11
11
 
12
12
  def send_payment_request(payload, request_configurations = {})
13
- Orchard::API::SendPaymentRequest.call(token_and_payload(payload), request_configurations)
13
+ Orchard::API::SendPaymentRequest.call(payload_with_client_data(payload), request_configurations)
14
14
  end
15
15
 
16
16
  def send_sms(payload, request_configurations = {})
17
- Orchard::API::SendSMS.call(token_and_payload(payload), request_configurations)
17
+ Orchard::API::SendSMS.call(payload_with_client_data(payload), request_configurations)
18
+ end
19
+
20
+ def service_lookup_request(payload, request_configurations = {})
21
+ Orchard::API::ServiceLookupRequest.call(payload_with_client_data(payload), request_configurations)
22
+ end
23
+
24
+ def check_transaction_status(payload, request_configurations = {})
25
+ Orchard::API::CheckTransactionStatus.call(payload_with_client_data(payload), request_configurations)
18
26
  end
19
27
 
20
28
  private
21
29
 
22
30
  def create_connection
23
- Faraday.new(
31
+ @connection = Faraday.new(
24
32
  url: @url.to_s,
25
33
  headers: {
26
34
  "Content-Type" => "application/json"
@@ -28,7 +36,7 @@ module Orchard
28
36
  )
29
37
  end
30
38
 
31
- def token_and_payload(payload)
39
+ def payload_with_client_data(payload)
32
40
  {
33
41
  payload: payload,
34
42
  secret_token: @secret_token,
@@ -5,6 +5,8 @@ module Orchard
5
5
  module Constants
6
6
  SEND_PAYMENT_REQUEST_ENDPOINT = "/sendRequest"
7
7
  SEND_SMS_ENDPOINT = "/sendSms"
8
+ SERVICE_LOOKUP_REQUEST_ENDPOINT = "/get_service_lookup_req"
9
+ CHECK_TRANSACTION_STATUS_ENDPOINT = "/checkTransaction"
8
10
  end
9
11
  end
10
12
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orchard
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.5"
5
5
  end
data/lib/orchard.rb CHANGED
@@ -7,5 +7,7 @@ require_relative "orchard/constants"
7
7
  require_relative "orchard/api/base"
8
8
  require_relative "orchard/api/send_payment_request"
9
9
  require_relative "orchard/api/send_sms"
10
+ require_relative "orchard/api/service_lookup_request"
11
+ require_relative "orchard/api/check_transaction_status"
10
12
 
11
13
  require_relative "orchard/api_client"
data/orchard.gemspec CHANGED
@@ -18,22 +18,17 @@ Gem::Specification.new do |spec|
18
18
  spec.metadata["homepage_uri"] = spec.homepage
19
19
  spec.metadata["source_code_uri"] = "https://github.com/appsnmobile-solutions/orchard_api_client_gem"
20
20
 
21
- # Specify which files should be added to the gem when it is released.
22
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ spec.add_development_dependency "byebug"
22
+ spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.add_development_dependency "rubocop", "~> 1.21"
24
+ spec.add_dependency "faraday", "~> 2.6"
25
+
23
26
  spec.files = Dir.chdir(__dir__) do
24
27
  `git ls-files -z`.split("\x0").reject do |f|
25
28
  (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
29
  end
27
30
  end
28
-
29
31
  spec.bindir = "exe"
30
32
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
33
  spec.require_paths = ["lib"]
32
-
33
- # Uncomment to register a new dependency of your gem
34
- spec.add_dependency "byebug"
35
- spec.add_dependency "faraday", "~> 2.6"
36
- spec.add_dependency "rspec", "~> 3.0"
37
- # For more information and examples about making a new gem, check out our
38
- # guide at: https://bundler.io/guides/creating_gem.html
39
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orchard-api-client-anm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sydney Dapilah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-20 00:00:00.000000000 Z
11
+ date: 2022-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :runtime
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -25,33 +25,47 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday
28
+ name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.6'
34
- type: :runtime
33
+ version: '3.0'
34
+ type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.6'
40
+ version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '1.21'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.21'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.6'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '3.0'
68
+ version: '2.6'
55
69
  description: Orchard API client
56
70
  email:
57
71
  - sydney@appsnmobilesolutions.com
@@ -59,20 +73,20 @@ executables: []
59
73
  extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
- - ".byebug_history"
63
76
  - ".rspec"
64
77
  - ".rubocop.yml"
65
78
  - CHANGELOG.md
66
79
  - CODE_OF_CONDUCT.md
67
80
  - Gemfile
68
- - Gemfile.lock
69
81
  - LICENSE.txt
70
82
  - README.md
71
83
  - Rakefile
72
84
  - lib/orchard.rb
73
85
  - lib/orchard/api/base.rb
86
+ - lib/orchard/api/check_transaction_status.rb
74
87
  - lib/orchard/api/send_payment_request.rb
75
88
  - lib/orchard/api/send_sms.rb
89
+ - lib/orchard/api/service_lookup_request.rb
76
90
  - lib/orchard/api_client.rb
77
91
  - lib/orchard/constants.rb
78
92
  - lib/orchard/version.rb
data/.byebug_history DELETED
@@ -1,109 +0,0 @@
1
- exit
2
- "2343333333333333"[-9..]
3
- "2343333333333333".[-9..]
4
- r
5
- exit
6
- client.send_sms(sms_payload, {timeout: 5})
7
- client.send_sms(sms_payload, {timeout: 10})
8
- r
9
- exit
10
- r
11
- exit
12
- r
13
- exit
14
- client
15
- exit
16
- @connection
17
- r
18
- exit
19
- eit
20
- @endpoint
21
- r
22
- exit
23
- r
24
- exit
25
- r
26
- exit
27
- r
28
- exit
29
- r
30
- exit
31
- continue
32
- @timeout
33
- exit
34
- @timeout
35
- exit
36
- r
37
- exit
38
- r
39
- exit
40
- r
41
- exit
42
- r.body
43
- r.success?
44
- r.success
45
- r.body
46
- r.data
47
- r
48
- exit
49
- @url
50
- exit
51
- response
52
- exit
53
- response
54
- exit
55
- response
56
- continue
57
- "#{@client_token}:#{compute_signature}"
58
- @client_token
59
- @clieint_token
60
- @payload
61
- exit
62
- @payload
63
- Orchard::API::Constants::SEND_PAYMENT_REQUEST_URL
64
- OpenSSL::HMAC.hexdigest(digest, @secret_token.to_s, @payload.to_json)
65
- @client_token
66
- @payload
67
- @secrete_token
68
- digest
69
- exit
70
- digist
71
- client.ctm_request(payload)
72
- exit
73
- payload
74
- client.ctm_request(payload)
75
- exit
76
- client.ctm_request(payload)
77
- exit
78
- client.ctm_request(payload)
79
- exit
80
- params
81
- client
82
- client.ctm_request(payload)
83
- exit
84
- client.ctm_request(payload)
85
- exit
86
- client.ctm_request(payload)
87
- exit
88
- client.ctm_request(payload)
89
- exit
90
- Orchard::API::SendPaymentRequest.call(payload)
91
- client.ctm_request(payload)
92
- client
93
- payload
94
- client.ctm_request(payload)
95
- exit
96
- payload
97
- client.ctm_request(payload)
98
- exit
99
- client.ctm_request(payload)
100
- exit
101
- client.ctm_request(payload)
102
- exit
103
- client.ctm_request(payload)
104
- payload
105
- exit
106
- Orchard::ApiClient.new(params).ctm_request
107
- exit
108
- CLIENT_TOKEN="JYAX4rhY3FI3LtzFwKGoVdnAMOkH3a51hAu3TdHv0cYiCTD4AjqqecZTzdgFjRcuDlGSEnhZQ2HC5BobsHLERQ=="
109
- SECRETE_TOKEN="Na+oh2ElZk3fDy3kKQItvXm0L+9vZ5j2cPfTX2/bLpFnDZOOxhINR4ouc0kBinwZSeX/68eHkPvwByMhNx7raw=="
data/Gemfile.lock DELETED
@@ -1,67 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- orchard-api-client-anm (0.1.1)
5
- byebug
6
- faraday (~> 2.6)
7
- rspec (~> 3.0)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- ast (2.4.2)
13
- byebug (11.1.3)
14
- diff-lcs (1.5.0)
15
- faraday (2.6.0)
16
- faraday-net_http (>= 2.0, < 3.1)
17
- ruby2_keywords (>= 0.0.4)
18
- faraday-net_http (3.0.1)
19
- json (2.6.2)
20
- parallel (1.22.1)
21
- parser (3.1.2.1)
22
- ast (~> 2.4.1)
23
- rainbow (3.1.1)
24
- rake (13.0.6)
25
- regexp_parser (2.6.0)
26
- rexml (3.2.5)
27
- rspec (3.11.0)
28
- rspec-core (~> 3.11.0)
29
- rspec-expectations (~> 3.11.0)
30
- rspec-mocks (~> 3.11.0)
31
- rspec-core (3.11.0)
32
- rspec-support (~> 3.11.0)
33
- rspec-expectations (3.11.1)
34
- diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.11.0)
36
- rspec-mocks (3.11.1)
37
- diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.11.0)
39
- rspec-support (3.11.1)
40
- rubocop (1.36.0)
41
- json (~> 2.3)
42
- parallel (~> 1.10)
43
- parser (>= 3.1.2.1)
44
- rainbow (>= 2.2.2, < 4.0)
45
- regexp_parser (>= 1.8, < 3.0)
46
- rexml (>= 3.2.5, < 4.0)
47
- rubocop-ast (>= 1.20.1, < 2.0)
48
- ruby-progressbar (~> 1.7)
49
- unicode-display_width (>= 1.4.0, < 3.0)
50
- rubocop-ast (1.22.0)
51
- parser (>= 3.1.1.0)
52
- ruby-progressbar (1.11.0)
53
- ruby2_keywords (0.0.5)
54
- unicode-display_width (2.3.0)
55
-
56
- PLATFORMS
57
- x86_64-linux
58
-
59
- DEPENDENCIES
60
- faraday (~> 2.6)
61
- orchard-api-client-anm!
62
- rake (~> 13.0)
63
- rspec (~> 3.0)
64
- rubocop (~> 1.21)
65
-
66
- BUNDLED WITH
67
- 2.3.20