sms24x7 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sms24x7/sms_api.rb +60 -11
- data/lib/sms24x7/version.rb +1 -1
- data/spec/functional_spec.rb +6 -6
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 831503ac07530de905a33164bec1d8f2803f83ae
|
4
|
+
data.tar.gz: 3110b520615fbe8bfb17f5ffec6db5fc8cc8104e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 189c7e92c1969898eb9870f57670a3720d0ec5d95e4232e360d378fe756fdf5a739021e14e8644914b2806a4a56bf217a83e9a6f19a08f910d0bc67e0d4a7af9
|
7
|
+
data.tar.gz: cf11f47b1bdd46afc1f2840dffaa324b1f98b28adba39ed57ff3fa57b11f2a2d8d8e4904bc33e3e9ab344525c21d6d49aa1f1bb1ab99979d5214cc8ada83543e
|
data/lib/sms24x7/sms_api.rb
CHANGED
@@ -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
|
-
|
9
|
-
class
|
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
|
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
|
61
|
-
when
|
62
|
-
|
63
|
-
when
|
64
|
-
when
|
65
|
-
|
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
|
data/lib/sms24x7/version.rb
CHANGED
data/spec/functional_spec.rb
CHANGED
@@ -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.
|
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.
|
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:
|
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.
|
93
|
+
rubygems_version: 2.2.2
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: Uses sms24x7 gateway for sending SMS
|