cequens 0.0.6 → 0.0.7

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: 45d8887b7c6d3148d68a01609954330f1bdb7be5c30bf149ba817be7e41b43d7
4
- data.tar.gz: 4285bd771357683970c8ca707e7be018bce09c91d325595bbb42a315cb6c4444
3
+ metadata.gz: f11166fbdbe9870dc4ca38824b06c4bf8f508b9949f8722fe92cad32d527b25e
4
+ data.tar.gz: c6b5eb0a9c544b27922643e42fa87d864614ea2d5d5cd0593f687080980e3d13
5
5
  SHA512:
6
- metadata.gz: 0b1f0ac686e74fe45430ac64e037745c94d05c1f3e6b7cb905c94ae8073327d7bf5728a354666eb50cccd28585b0ce923d9e6bd4bddac951a5d64a0e8fece930
7
- data.tar.gz: 5eb7891ae85ea28bb85efa2a171c60ea8cecac149e14010d929bcd02aa8536ea4a8eac0c54cefdb4bb1e03164952ced5ad4fdf59f39c96e0fc5869e328a29450
6
+ metadata.gz: 8588a8033b78e4bbe046297c18bf56c0d399b0603e918ea3d9ff21b0ee4669fbb73d4b5cfca862ceda6c6c2f11f39f512a0126c48b377efe629aecc93fb699e8
7
+ data.tar.gz: 6feb98cdd452e20c471bd8cbec09161defe58bdc2d66238a9847064af5b9f5aa61645a3daca27bba61c71ad255cffc34437fb7d40e5565cf00475b3dbc19dac9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cequens (0.0.4)
4
+ cequens (0.0.6)
5
5
  dry-validation (~> 1.6)
6
6
  faraday (~> 0.17)
7
7
 
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Cequens
2
2
 
3
- **Disclaimer:** we are not officially affilated with the Cequens company.
3
+ **Disclaimer:** we are not officially affilated with Cequens company.
4
4
 
5
- A plug-and-play library that make it easier to use with Cequens SMS APIs
5
+ A plug-and-play library that make it easier to use Cequens SMS APIs
6
6
 
7
7
  ## Installation
8
8
 
@@ -24,10 +24,11 @@ Or install it yourself as:
24
24
 
25
25
  configure access token as:
26
26
 
27
- $ rails g cequens config
27
+ $ rails g cequens:config
28
28
 
29
- Cequens.configure do |config|
30
- # config.access_token = token # add your access token
29
+ Cequens.config do |c|
30
+ # c.access_token = token # add your access token not api token
31
+ # access_token is what you get when you login
31
32
  end
32
33
 
33
34
  ### Send SMS
@@ -45,3 +46,13 @@ res = Cequens.send_sms(params)
45
46
 
46
47
  res.success? # => true
47
48
  ```
49
+
50
+ ### Get SMS Details
51
+
52
+ ```ruby
53
+ res = Cequens.get_sms_details(id: "AAAAA")
54
+ # => #<Cequens::Response:0x00007ffd672b29f8 @api_response={"replyCode"=>0, "replyMessage"=>"Request handled successfully", "requestId"=>"64035880-7044-11eb-9f04-11a5522e89a7", "clientRequestId"=>0, "requestTime"=>"2021-02-16T10:47:40.296", "data"=>{"SentSMSIDs"=>[{"SMSId"=>"056ef72a-1497-47be-a4c8-4a7835e071dc"}], "InvalidRecipients"=>""}}>
55
+
56
+ res.success? # => true
57
+ res.message # => Request handled successfully
58
+ ```
data/lib/cequens.rb CHANGED
@@ -7,7 +7,10 @@ require 'cequens/request'
7
7
  require 'cequens/response'
8
8
  require 'cequens/requests/send_sms_request'
9
9
  require 'cequens/contracts/send_sms_contract'
10
+ require 'cequens/requests/get_sms_details_request'
11
+ require 'cequens/contracts/get_sms_details_contract'
10
12
  require 'rails'
13
+ require 'byebug'
11
14
 
12
15
  module Cequens
13
16
  class << self
@@ -20,5 +23,9 @@ module Cequens
20
23
  def send_sms(params, opts = {})
21
24
  Request.new('send_sms', params, opts).fire_request
22
25
  end
26
+
27
+ def get_sms_details(params, opts = {})
28
+ Request.new('get_sms_details', params, opts).fire_request
29
+ end
23
30
  end
24
31
  end
@@ -8,10 +8,12 @@ module Cequens
8
8
  CEQUENS_BASE_URL = 'https://apis.cequens.com/'
9
9
 
10
10
  class << self
11
- def post(path, params, body, _options)
12
- conn = connection
11
+ def get(path, _params, _body, _options)
12
+ connection.get(path)
13
+ end
13
14
 
14
- conn.post(path) do |request|
15
+ def post(path, params, body, _options)
16
+ connection.post(path) do |request|
15
17
  request.params = params
16
18
  request.body = body.to_json
17
19
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'dry-validation'
4
+
5
+ module Cequens
6
+ module Contracts
7
+ class GetSMSDetailsContract < Dry::Validation::Contract
8
+ params do
9
+ required(:id).value(:string)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -22,6 +22,10 @@ module Cequens
22
22
  self.class.include Requests::SendSMSRequest
23
23
  validate_params!
24
24
  @request = build_send_sms_request
25
+ when 'get_sms_details'
26
+ self.class.include Requests::GetSMSDetailsRequest
27
+ validate_params!
28
+ @request = build_get_sms_details_request
25
29
  end
26
30
  end
27
31
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cequens
4
+ module Requests
5
+ module GetSMSDetailsRequest
6
+ DEFAULTS = {}.freeze
7
+
8
+ def fire_request
9
+ cequens_api_response = Connection.get(request[:path], request[:params], request[:body], request[:options])
10
+ response_body = JSON.parse(cequens_api_response.body)
11
+
12
+ Response.new(response_body)
13
+ end
14
+
15
+ private
16
+
17
+ def build_get_sms_details_request
18
+ {
19
+ path: "sms/v1/messages/#{message_id}",
20
+ params: {},
21
+ body: {},
22
+ options: options
23
+ }
24
+ end
25
+
26
+ def request_params
27
+ @request_params ||= DEFAULTS.merge(params)
28
+ end
29
+
30
+ def message_id
31
+ request_params[:id]
32
+ end
33
+
34
+ def validate_params!
35
+ contract = Contracts::GetSMSDetailsContract.new.call(request_params)
36
+ raise InvalidCequensRequestError, contract.errors.to_h if contract.failure?
37
+ end
38
+ end
39
+ end
40
+ end
@@ -3,7 +3,7 @@
3
3
  module Cequens
4
4
  module Requests
5
5
  module SendSMSRequest
6
- DEFAULTS = {}.freeze
6
+ DEFAULTS = { messageType: 'text' }.freeze
7
7
 
8
8
  def fire_request
9
9
  cequens_api_response = Connection.post(request[:path], request[:params], request[:body], request[:options])
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cequens
4
- VERSION = '0.0.6'
4
+ VERSION = '0.0.7'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cequens
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed Ali
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-validation
@@ -171,9 +171,11 @@ files:
171
171
  - cequens.gemspec
172
172
  - lib/cequens.rb
173
173
  - lib/cequens/connection.rb
174
+ - lib/cequens/contracts/get_sms_details_contract.rb
174
175
  - lib/cequens/contracts/send_sms_contract.rb
175
176
  - lib/cequens/errors.rb
176
177
  - lib/cequens/request.rb
178
+ - lib/cequens/requests/get_sms_details_request.rb
177
179
  - lib/cequens/requests/send_sms_request.rb
178
180
  - lib/cequens/response.rb
179
181
  - lib/cequens/version.rb