smshelper 0.3.1 → 0.4.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.
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/smshelper/api/aql.rb +10 -0
- data/lib/smshelper/api/base.rb +31 -0
- data/lib/smshelper/api/bulksms.rb +10 -0
- data/lib/smshelper/api/esendex.rb +25 -1
- data/lib/smshelper/api/mediaburst.rb +10 -0
- data/lib/smshelper/api/mycoolsms.rb +15 -4
- data/lib/smshelper/api/nexmo.rb +22 -0
- data/lib/smshelper/api/smstrade.rb +9 -0
- data/lib/smshelper/api/textmagic.rb +9 -0
- data/lib/smshelper/api.rb +2 -2
- data/lib/smshelper/languagetools.rb +7 -1
- data/lib/smshelper.rb +1 -0
- data/smshelper.gemspec +2 -2
- metadata +3 -3
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/smshelper/api/aql.rb
CHANGED
@@ -32,6 +32,16 @@ module Smshelper
|
|
32
32
|
raise NotImplementedError, "Aql does not implement status check"
|
33
33
|
end
|
34
34
|
|
35
|
+
def get_callback_response(args = {})
|
36
|
+
DeliveryReport.new(
|
37
|
+
:message_id => args['message_id'],
|
38
|
+
:timestamp => Time.now,
|
39
|
+
:delivered => ((args['status'] == '1') ? true : false),
|
40
|
+
:original_params => args
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
35
45
|
def process_response_code(code)
|
36
46
|
(code =~ /SMS successfuly queued/) ? true : false
|
37
47
|
end
|
data/lib/smshelper/api/base.rb
CHANGED
@@ -11,6 +11,37 @@ module Smshelper
|
|
11
11
|
@response_code = ResponseCodes.new
|
12
12
|
@extra_options = args.shift
|
13
13
|
@uuid = UUID.new
|
14
|
+
class_factory 'DeliveryReport', 'InboundMessage', 'UnknownReply'
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
def class_factory(*names)
|
19
|
+
names.each do |name|
|
20
|
+
klass = self.class.const_set(name, Class.new)
|
21
|
+
klass.class_eval do
|
22
|
+
attr_reader :uuid, :service
|
23
|
+
|
24
|
+
define_method(:initialize) do |args = {}|
|
25
|
+
args.each do |k,v|
|
26
|
+
unless k.to_s =~ (/splat/ || /captures/)
|
27
|
+
self.class.send(:define_method, k.to_sym) {v}
|
28
|
+
instance_variable_set("@"+k.to_s, v)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
instance_variable_set("@uuid", UUID.generate)
|
32
|
+
instance_variable_set("@service", self.class.name.split('::')[2])
|
33
|
+
end
|
34
|
+
|
35
|
+
# define_method("marshal_dump".to_sym) do
|
36
|
+
# self.to_yaml
|
37
|
+
# end
|
38
|
+
|
39
|
+
# define_method("marshal_load".to_sym) do |yaml|
|
40
|
+
# YAML.load(yaml)
|
41
|
+
# end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
14
45
|
end
|
15
46
|
end
|
16
47
|
end
|
@@ -41,6 +41,16 @@ module Smshelper
|
|
41
41
|
{message_id => @sent_message_statuses[message_id]}
|
42
42
|
end
|
43
43
|
|
44
|
+
def get_callback_response(args = {})
|
45
|
+
DeliveryReport.new(
|
46
|
+
:message_id => args['batch_id'],
|
47
|
+
:timestamp => Time.now,
|
48
|
+
:delivered => ((args['status'] == '11') ? true : false),
|
49
|
+
:status => @response_code.bulksms(args['status']),
|
50
|
+
:original_params => args
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
44
54
|
private
|
45
55
|
def process_response_code(code)
|
46
56
|
(code == '0') ? true : false
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Smshelper
|
2
2
|
module Api
|
3
|
-
class Esendex < Base
|
3
|
+
class Esendex < Api::Base
|
4
|
+
|
4
5
|
INBOX_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/InboxService.asmx?wsdl'
|
5
6
|
SEND_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/SendService.asmx?wsdl'
|
6
7
|
ACCOUNT_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/AccountService.asmx?wsdl'
|
@@ -60,6 +61,29 @@ module Smshelper
|
|
60
61
|
end
|
61
62
|
end
|
62
63
|
|
64
|
+
# This expects a sinatra style params.merge(:request_body => request.body.read.to_s)
|
65
|
+
def get_callback_response(args = {})
|
66
|
+
if args['notificationType'] == 'MessageReceived'
|
67
|
+
InboundMessage.new(
|
68
|
+
:message_id => args['id'],
|
69
|
+
:sender => args['originator'],
|
70
|
+
:recipient => args['recipient'],
|
71
|
+
:text => args['body'],
|
72
|
+
:timestamp => Time.now,
|
73
|
+
:original_params => args
|
74
|
+
)
|
75
|
+
elsif args['notificationType'] == 'MessageEvent'
|
76
|
+
DeliveryReport.new(
|
77
|
+
:message_id => args['id'],
|
78
|
+
:timestamp => Time.now,
|
79
|
+
:delivered => ((args['eventType'] == 'Delivered') ? true : false),
|
80
|
+
:original_params => args
|
81
|
+
)
|
82
|
+
else
|
83
|
+
UnknownReply.new(args)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
63
87
|
private
|
64
88
|
def connect(service)
|
65
89
|
case service
|
@@ -31,6 +31,16 @@ module Smshelper
|
|
31
31
|
raise NotImplementedError, "Sms status checks unsupported by #{self.class.name}"
|
32
32
|
end
|
33
33
|
|
34
|
+
def get_callback_response(args = {})
|
35
|
+
DeliveryReport.new(
|
36
|
+
:message_id => args['msg_id'],
|
37
|
+
:timestamp => Time.now,
|
38
|
+
:delivered => ((args['status'] =~ /DELIVRD/) ? true : false),
|
39
|
+
:original_params => args
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
|
34
44
|
private
|
35
45
|
def process_response_code(code)
|
36
46
|
(code =~ /Error/) ? false : true
|
@@ -11,10 +11,10 @@ module Smshelper
|
|
11
11
|
|
12
12
|
def send_message(message)
|
13
13
|
options = {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
:number => message.recipient,
|
15
|
+
:message => message.text,
|
16
|
+
:senderid => message.sender,
|
17
|
+
:function => 'sendSms'}
|
18
18
|
options = options.merge(@extra_options) unless @extra_options.nil?
|
19
19
|
resp = JSON.parse(post 'api-socket.php', :extra_query => options)
|
20
20
|
process_response_code(resp) ? (@sent_message_ids << resp['smsid']; resp['smsid']) : (raise ErrorDuringSend, resp)
|
@@ -28,6 +28,17 @@ module Smshelper
|
|
28
28
|
JSON.parse(post 'api-socket.php', :extra_query => {:function => 'doHlrLookup', :number => number})
|
29
29
|
end
|
30
30
|
|
31
|
+
def get_callback_response(args = {})
|
32
|
+
data = JSON.parse args[:request_body]
|
33
|
+
DeliveryReport.new(
|
34
|
+
:message_id => data['smsid'],
|
35
|
+
:timestamp => Time.now,
|
36
|
+
:delivered => ((data['status'] == 'SMS_STATUS_DELIVERED') ? true : false),
|
37
|
+
:original_params => args
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
31
42
|
def process_response_code(code)
|
32
43
|
code['success']
|
33
44
|
end
|
data/lib/smshelper/api/nexmo.rb
CHANGED
@@ -32,6 +32,28 @@ module Smshelper
|
|
32
32
|
def get_status(message_id)
|
33
33
|
end
|
34
34
|
|
35
|
+
def get_callback_response(args = {})
|
36
|
+
if args['type']
|
37
|
+
InboundMessage.new(
|
38
|
+
:message_id => args['messageId'],
|
39
|
+
:sender => args['msisdn'],
|
40
|
+
:recipient => args['to'],
|
41
|
+
:text => args['text'],
|
42
|
+
:timestamp => Time.parse(args['message-timestamp']),
|
43
|
+
:original_params => args
|
44
|
+
)
|
45
|
+
elsif args['network-code']
|
46
|
+
DeliveryReport.new(
|
47
|
+
:message_id => args['messageId'],
|
48
|
+
:timestamp => Time.parse(args['message-timestamp']),
|
49
|
+
:delivered => ((args['status'] == 'delivered') ? true : false),
|
50
|
+
:original_params => args
|
51
|
+
)
|
52
|
+
else
|
53
|
+
UnknownReply.new(args)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
35
57
|
private
|
36
58
|
def process_response_code(code)
|
37
59
|
(code == '0') ? true : false
|
@@ -36,6 +36,15 @@ module Smshelper
|
|
36
36
|
raise NotImplementedError, "Sms status checks unsupported by #{self.class.name}"
|
37
37
|
end
|
38
38
|
|
39
|
+
def get_callback_response(args = {})
|
40
|
+
DeliveryReport.new(
|
41
|
+
:message_id => args['message_id'],
|
42
|
+
:timestamp => Time.now,
|
43
|
+
:delivered => ((args['status'] == 'DELIVERED') ? true : false),
|
44
|
+
:original_params => args
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
39
48
|
private
|
40
49
|
def process_response_code(code)
|
41
50
|
(code == '100') ? true : false
|
@@ -25,6 +25,15 @@ module Smshelper
|
|
25
25
|
@sent_message_statuses[message_id] << {"Part 01" => @api.message_status(message_id)}
|
26
26
|
{message_id => @sent_message_statuses[message_id]}
|
27
27
|
end
|
28
|
+
|
29
|
+
def get_callback_response(args = {})
|
30
|
+
DeliveryReport.new(
|
31
|
+
:message_id => args['message_id'],
|
32
|
+
:timestamp => Time.now,
|
33
|
+
:delivered => ((args['status'] =~ /d/) ? true : false),
|
34
|
+
:original_params => args
|
35
|
+
)
|
36
|
+
end
|
28
37
|
end
|
29
38
|
end
|
30
39
|
end
|
data/lib/smshelper/api.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
# require 'smshelper/api/routomessaging'
|
1
|
+
require 'hashie'
|
3
2
|
|
4
3
|
module Smshelper
|
5
4
|
module Api
|
6
5
|
path = (File.dirname File.expand_path(__FILE__))
|
6
|
+
VERSION = '0.0.1'#File.read('blahblah')
|
7
7
|
|
8
8
|
autoload :Base, "#{path}/api/base"
|
9
9
|
autoload :ResponseCodes, "#{path}/api/response_codes"
|
data/lib/smshelper.rb
CHANGED
data/smshelper.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "smshelper"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Voip Scout"]
|
12
|
-
s.date = "2012-05-
|
12
|
+
s.date = "2012-05-26"
|
13
13
|
s.description = "works www.bulksms.com, www.webtext.com, www.clickatell.com, www.textmagic.com, www.smstrade.eu, www.esendex.com, www.mediaburst.co.uk, www.nexmo.com, www.vianett.com, www.traitel.com.au, www.my-cool-sms.com, www.aql.com"
|
14
14
|
s.email = "voipscout@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smshelper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: api_smith
|
@@ -261,7 +261,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
261
261
|
version: '0'
|
262
262
|
segments:
|
263
263
|
- 0
|
264
|
-
hash:
|
264
|
+
hash: 1710997261661198984
|
265
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
266
266
|
none: false
|
267
267
|
requirements:
|