Class: SmsKit::SmsTrade
Constant Summary
collapse
- ROUTE_BASIC =
'Basic'.freeze
- ROUTE_GOLD =
'gold'.freeze
- ROUTE_DIRECT =
'direct'.freeze
- HTTP_ENDPOINT =
"https://gateway.smstrade.de/"
- ERROR_CODES =
{
10 => 'Receiver number not valid',
20 => 'Sender number not valid',
30 => 'Message text not valid',
31 => 'Message type not valid',
40 => 'SMS route not valid',
50 => 'Identification failed',
60 => 'Not enough balance in account',
70 => 'Network does not support the route',
71 => 'Feature is not possible with the route',
80 => 'Handover to SMSC failed',
100 => 'SMS has been sent successfully'
}.freeze
Constants included
from HTTP
HTTP::USER_AGENT
Instance Attribute Summary
Attributes inherited from Provider
#data, #error_code, #error_message
Instance Method Summary
collapse
Methods inherited from Provider
deliver, #initialize
Methods included from HTTP
#connection, #get, #post, #uri
Methods included from Config
included
Instance Method Details
#default_params ⇒ Object
59
60
61
62
63
64
65
66
67
|
# File 'lib/sms_kit/providers/sms_trade.rb', line 59
def default_params
{
key: config.gateway_key,
from: config.sender,
route: config.route,
concat: 1,
dlr: 1
}
end
|
#deliver ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/sms_kit/providers/sms_trade.rb', line 27
def deliver
response = post URI.encode_www_form params
if 'ERROR_LOGIN' == response.body
raise DeliveryError, "Login failed (ERROR_LOGIN)"
end
parsed_response = response.body.split "\n"
status = parsed_response.shift
message_id = parsed_response.shift
if '100' == status
message_id.to_i
else
raise DeliveryError, "#{ERROR_CODES[status.to_i]} (#{status})"
end
end
|
#param_names ⇒ Object
52
53
54
55
56
57
|
# File 'lib/sms_kit/providers/sms_trade.rb', line 52
def param_names
[
:message, :to, :from, :route, :dlr, :message_id,
:debug, :cost, :count, :response, :ref, :concat, :senddata
]
end
|
#params ⇒ Object
45
46
47
48
49
50
|
# File 'lib/sms_kit/providers/sms_trade.rb', line 45
def params
default_params.merge(params_from_data).tap do |p|
p[:message_id] ||= 1
p[:message] ||= data[:text]
end
end
|
#params_from_data ⇒ Object
69
70
71
|
# File 'lib/sms_kit/providers/sms_trade.rb', line 69
def params_from_data
data.select { |k, _| param_names.include? k.to_sym }
end
|