sms-ru-client 1.0.1 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdb9c999f90ca43a9b942d26e06d9135dba773a4623d0f4029beef5692e4d20b
4
- data.tar.gz: 7dc839efcdf592f156a3292401a5ecc91588fba2d40f2503cf395cde5ec2357a
3
+ metadata.gz: '08707531728ecaedb06184058f29ec904eddc8a29c514cbea33bc54230437d8f'
4
+ data.tar.gz: 04bc0746a202a7d9da521d83aef9a3864e02f6164146166721ce7b73cab4b0e4
5
5
  SHA512:
6
- metadata.gz: 6a93c6952370e6aca25a8116a0090c857f1b50c1f78b249002572d3663f6a92a60dadb53c55f1744f45c6b6b51b8c95e5ec9966cb7cbb3a3bc36494e1d4c96bc
7
- data.tar.gz: ca6302411defdf000dacd442826ff233fc4850484b742c73225e78b7394b4d574f2ff57e00c508c5fd84669fb57f02f6691fa78679d38e810784abc92f6719f8
6
+ metadata.gz: 7b4ef3f65b7413adcf2f29a93f943b8dc729b131f926e4f8ea31cce5f4c024fd4a1ccdcc9ef7e231e3ab842f1e4dcfebe5a886cb5e034de02c4e94a9dcfffe1d
7
+ data.tar.gz: b58fdae82c72914a66ee8936e05a8449dd0b44163c1e42786bd74197a9da9c4514c16236746955f621aafc9723b19edab0e8ce16b6e2b3a4f98d3643f770e192
@@ -2,7 +2,8 @@ module SmsRu
2
2
  class Client
3
3
  module Api
4
4
  module Sms
5
- SEND_PATH = 'sms/send'.freeze
5
+ SEND_SMS_PATH = 'sms/send'.freeze
6
+ CODE_CALL_PATH = 'code/call'.freeze
6
7
 
7
8
  # @param request [SmsRu::Requests::SendSms, Hash]
8
9
  # @raise [SmsRu::Responses::SendSms::Error]
@@ -10,13 +11,27 @@ module SmsRu
10
11
  #
11
12
  def send_sms(request)
12
13
  request = Requests::SendSms.new(request) unless request.is_a?(Requests::SendSms)
13
- response = http_post(SEND_PATH, params: request)
14
+ response = http_post(SEND_SMS_PATH, params: request)
14
15
  json = JSON.parse(response.body)
15
16
  result = Responses::SendSms.new(json)
16
17
  return result if result.success?
17
18
 
18
19
  raise result.to_error
19
20
  end
21
+
22
+ # @param request [SmsRu::Requests::CodeCall, Hash]
23
+ # @raise [SmsRu::Responses::CodeCall::Error]
24
+ # @return [SmsRu::Responses::CodeCall]
25
+ #
26
+ def code_call(request)
27
+ request = Requests::CodeCall.new(request) unless request.is_a?(Requests::CodeCall)
28
+ response = http_post(CODE_CALL_PATH, params: request)
29
+ json = JSON.parse(response.body)
30
+ result = Responses::CodeCall.new(json)
31
+ return result if result.success?
32
+
33
+ raise result.to_error
34
+ end
20
35
  end
21
36
 
22
37
  include Sms
@@ -0,0 +1,12 @@
1
+ module SmsRu
2
+ class Client
3
+ module Models
4
+ module Requests
5
+ class CodeCall < Base
6
+ property :phone, from: 'to'
7
+ property :ip
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ module SmsRu
2
+ class Client
3
+ module Models
4
+ module Responses
5
+ class CodeCall < Base
6
+ class Error < StandardError
7
+ attr_reader :status, :code, :text
8
+
9
+ def initialize(status, code, text)
10
+ @status = status
11
+ @code = code
12
+ @text = text
13
+ super("status: #{status}, code: #{code}, text: #{text}")
14
+ end
15
+ end
16
+
17
+ SUCCESS_STATUS = 'OK'.freeze
18
+
19
+ property :status
20
+ property :status_code
21
+ property :status_text
22
+ property :code
23
+ property :balance
24
+
25
+ def success?
26
+ status == SUCCESS_STATUS
27
+ end
28
+
29
+ def to_error
30
+ return if success?
31
+
32
+ Error.new(status, status_code, status_text)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,8 +1,10 @@
1
1
  require_relative 'models/requests/base'
2
2
  require_relative 'models/requests/send_sms'
3
+ require_relative 'models/requests/code_call'
3
4
 
4
5
  require_relative 'models/responses/base'
5
6
  require_relative 'models/responses/send_sms'
7
+ require_relative 'models/responses/code_call'
6
8
 
7
9
  module SmsRu
8
10
  Requests = Client::Models::Requests
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms-ru-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Zaboltonov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-05 00:00:00.000000000 Z
11
+ date: 2025-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -59,8 +59,10 @@ files:
59
59
  - lib/sms_ru/client/api/sms.rb
60
60
  - lib/sms_ru/client/models.rb
61
61
  - lib/sms_ru/client/models/requests/base.rb
62
+ - lib/sms_ru/client/models/requests/code_call.rb
62
63
  - lib/sms_ru/client/models/requests/send_sms.rb
63
64
  - lib/sms_ru/client/models/responses/base.rb
65
+ - lib/sms_ru/client/models/responses/code_call.rb
64
66
  - lib/sms_ru/client/models/responses/send_sms.rb
65
67
  - lib/sms_ru/configurable.rb
66
68
  homepage: https://github.com/zabolotnov87/sms_ru
@@ -83,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
85
  - !ruby/object:Gem::Version
84
86
  version: '0'
85
87
  requirements: []
86
- rubygems_version: 3.3.7
88
+ rubygems_version: 3.4.10
87
89
  signing_key:
88
90
  specification_version: 4
89
91
  summary: Ruby Client Library for working with SMS.RU