sms24x7 0.2.2 → 0.3.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
  SHA1:
3
- metadata.gz: 81351ddd3a4bd6af1d84b6829a84e7631dabe5be
4
- data.tar.gz: a4c4b9d81ade8918db29e9153b485daa7b66a130
3
+ metadata.gz: 831503ac07530de905a33164bec1d8f2803f83ae
4
+ data.tar.gz: 3110b520615fbe8bfb17f5ffec6db5fc8cc8104e
5
5
  SHA512:
6
- metadata.gz: 30bfd2adc897c2c3d2692d77284c2bce23f0346f784346279df3dff551b2a32a6eb420f1cd7854d5de007ac905600e2bc0933b82035b932deae46555a6f37da1
7
- data.tar.gz: 2fc7deb81c9bb316b1fd2526c846ff655e232dbb07c4844d8c0608c0a3d061e5aa6b910114f34a44eaaac39a209fe1e6e1b4725368a5e97177190a4f1b90e375
6
+ metadata.gz: 189c7e92c1969898eb9870f57670a3720d0ec5d95e4232e360d378fe756fdf5a739021e14e8644914b2806a4a56bf217a83e9a6f19a08f910d0bc67e0d4a7af9
7
+ data.tar.gz: cf11f47b1bdd46afc1f2840dffaa324b1f98b28adba39ed57ff3fa57b11f2a2d8d8e4904bc33e3e9ab344525c21d6d49aa1f1bb1ab99979d5214cc8ada83543e
@@ -4,16 +4,34 @@ require 'active_support/core_ext/module/attribute_accessors'
4
4
 
5
5
  module SmsApi
6
6
  SMS_HOST = 'api.sms24x7.ru'
7
-
8
- class BaseError < Exception; end
9
- class InterfaceError < BaseError; end
7
+ API_VERSION = '1.1'
8
+
9
+ class BaseError < ::StandardError; end
10
+ class AccountBlockedError < BaseError; end
11
+ class AccountNotFoundError < BaseError; end
12
+ class ActionRejectedError < BaseError; end
13
+ class ApiVersionError < BaseError; end
14
+ class ArgumentsError < BaseError; end
10
15
  class AuthError < BaseError; end
11
- class NoLoginError < BaseError; end
12
16
  class BalanceError < BaseError; end
13
- class SpamError < BaseError; end
17
+ class DeliveryError < BaseError; end
18
+ class DomainBusyError < BaseError; end
14
19
  class EncodingError < BaseError; end
20
+ class InterfaceError < BaseError; end
21
+ class InternalError < BaseError; end
22
+ class MessagesNotDeliveryError < BaseError; end
15
23
  class NoGateError < BaseError; end
24
+ class NoLoginError < BaseError; end
16
25
  class OtherError < BaseError; end
26
+ class PasswordError < BaseError; end
27
+ class SaveError < BaseError; end
28
+ class SenderNameError < BaseError; end
29
+ class SessionExpiredError < BaseError; end
30
+ class SpamError < BaseError; end
31
+ class TarifNotFoundError < BaseError; end
32
+ class TimeoutError < BaseError; end
33
+ class UnauthorizedPartnerError < BaseError; end
34
+ class UndefinedError < BaseError; end
17
35
 
18
36
  # Login info
19
37
  mattr_accessor :email
@@ -56,13 +74,41 @@ module SmsApi
56
74
 
57
75
  error_code = error_code.to_i
58
76
  if error_code > 0
77
+ raise_error = -> error, text { raise error, msg['text'] || text }
78
+
59
79
  case error_code
60
- when 2 then raise AuthError
61
- when 29 then raise NoGateError
62
- when 35 then raise EncodingError
63
- when 36 then raise BalanceError, 'No money'
64
- when 37, 38 then raise SpamError
65
- else raise OtherError, "Communication to API failed. Error code: #{error_code}"
80
+ when 2 then raise_error[AuthError, 'Wrong login or password']
81
+ when 3 then raise_error[TimeoutError, 'You have been inactive for more than 24 minutes']
82
+
83
+ when 4 then raise_error[AccountBlockedError, 'Your account is blocked']
84
+ when 5 then raise_error[UndefinedError, 'Undefined method']
85
+ when 6 then raise_error[ApiVersionError, 'Wrong API version']
86
+ when 7 then raise_error[ArgumentsError, 'Not all necessary parameters are set']
87
+ when 10 then raise_error[UnauthorizedPartnerError, 'Partner is not authorized']
88
+ when 11 then raise_error[SaveError, 'Error saving']
89
+ when 15 then raise_error[ActionRejectedError, 'Action rejected']
90
+ when 16 then raise_error[PasswordError, 'Wrong password']
91
+ when 18 then raise_error[SessionExpiredError, 'Session expired']
92
+ when 19 then raise_error[InternalError, 'Internal operator error']
93
+
94
+ when 22 then raise_error[AccountNotFoundError, 'Account is not found']
95
+
96
+ when 29 then raise_error[NoGateError, 'Mobile operator gateway is not connected']
97
+ when 35 then raise_error[EncodingError, 'Wrong encoding']
98
+ when 36 then raise_error[BalanceError, 'Not enough money']
99
+ when 37, 38, 59 then raise_error[SpamError, 'Spam detected']
100
+
101
+ when 39 then raise_error[SenderNameError, 'Invalid sender name']
102
+ when 40 then raise_error[DeliveryError, 'Undeliverable']
103
+ when 42 then raise_error[NoLoginError, 'Login to continue']
104
+
105
+ when 43 then raise_error[DomainBusyError, 'Domain busy']
106
+ when 45 then raise_error[BaseError, 'Basic settings is not found']
107
+ when 44, 47 then raise_error[TarifNotFoundError, 'Tarif is not found']
108
+
109
+ when 58 then raise_error[MessagesNotDeliveryError, 'Messages are not delivered']
110
+
111
+ else raise_error[OtherError, "Communication to API failed. Error code: #{error_code}"]
66
112
  end
67
113
  end
68
114
 
@@ -83,6 +129,7 @@ module SmsApi
83
129
  #
84
130
  def push_msg_nologin(phone, text, params = {})
85
131
  request = {
132
+ :api => API_VERSION,
86
133
  :method => 'push_msg',
87
134
  :email => @@email,
88
135
  :password => @@password,
@@ -100,6 +147,7 @@ module SmsApi
100
147
  #
101
148
  def login
102
149
  request = {
150
+ :api => API_VERSION,
103
151
  :method => 'login',
104
152
  :email => @@email,
105
153
  :password => @@password
@@ -132,6 +180,7 @@ module SmsApi
132
180
  def push_msg(phone, text, params = {})
133
181
  raise NoLoginError, 'Must first call the login method' unless @@cookie
134
182
  request = {
183
+ :api => API_VERSION,
135
184
  :method => 'push_msg',
136
185
  :phone => phone,
137
186
  :text => text
@@ -1,3 +1,3 @@
1
1
  module SmsApi
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,6 +2,9 @@ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe SmsApi do
4
4
  describe 'Testing sms24x7 api calls' do
5
+
6
+ SENDER_NAME = '+79023897339'
7
+
5
8
  def error_message(variable, filename, line_number = nil)
6
9
  msg = "Please setup your #{variable} in spec/#{filename}"
7
10
  msg << " at line ##{line_number}" if line_number
@@ -16,16 +19,13 @@ describe SmsApi do
16
19
  SmsApi.password.should_not eq(''), error_message('password', 'spec_helper.rb')
17
20
  end
18
21
 
19
- it 'sending SMS' do
22
+ it 'sending single SMS' do
20
23
  check_email_and_password
21
24
 
22
25
  phone = '' # <- enter here your phone number
23
26
  phone.should_not eq(''), error_message('phone number', 'functional_spec.rb', __LINE__ - 1)
24
27
 
25
- sending_result = SmsApi.push_msg_nologin(phone, 'test passed',
26
- :sender_name => 'RSpec',
27
- :api => '1.1',
28
- :satellite_adv => 'IF_EXISTS')
28
+ sending_result = SmsApi.push_msg_nologin(phone, 'Single SMS RSpec test passed', :sender_name => SENDER_NAME)
29
29
 
30
30
  sending_result.should have_key('n_raw_sms')
31
31
  sending_result.should have_key('credits')
@@ -39,7 +39,7 @@ describe SmsApi do
39
39
 
40
40
  SmsApi.login do
41
41
  phones.each do |phone|
42
- sending_result = SmsApi.push_msg_nologin(phone, 'multiple SMS test passed')
42
+ sending_result = SmsApi.push_msg(phone, 'Multiple SMS RSpec test passed', :sender_name => SENDER_NAME)
43
43
  sending_result.should have_key('n_raw_sms')
44
44
  sending_result.should have_key('credits')
45
45
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms24x7
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Averchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-16 00:00:00.000000000 Z
11
+ date: 2014-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curb-fu
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 3.2.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 3.2.1
55
55
  description: Sending SMS via sms24x7 API
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
62
+ - ".gitignore"
63
63
  - Gemfile
64
64
  - LICENSE
65
65
  - README.md
@@ -80,17 +80,17 @@ require_paths:
80
80
  - lib
81
81
  required_ruby_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - '>='
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.0.3
93
+ rubygems_version: 2.2.2
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Uses sms24x7 gateway for sending SMS