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 +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
|