Class: Terasms::Sms
- Inherits:
-
HttpClient
- Object
- HttpClient
- Terasms::Sms
- Defined in:
- lib/terasms.rb
Constant Summary collapse
- ERRORS =
{ -1 => 'Неверный логин или пароль', -20 => 'Пустой текст сообщения', -30 => 'Пустой номер абонента', -40 => 'Неправильно задан номер абонента', -45 => 'Превышено количество номеров', -50 => 'Неправильно задано имя отправителя', -60 => 'Рассылка по данному направлению недоступна', -70 => 'Недостаточно средств на счете', -80 => 'Не установлена стоимость рассылки по данному направлению', -90 => 'Рассылка запрещена', -100 => 'Не указаны необходимые параметры', -110 => 'Номер в черном списке', -120 => 'Некорректно задано время отложенной отправки', -130 => 'Некорректно задано временное окно отправки', -140 => 'Передан некорректный ID рассылки', -160 => 'Превышен дневной лимит рассылки (Вы можете установить максимальную сумму ежедневной рассылки после согласования с Вашим менеджером)', }
Instance Method Summary collapse
- #balance ⇒ Object
- #error(code) ⇒ Object
- #main_status(result) ⇒ Object
- #message_id(result) ⇒ Object
- #message_status(result) ⇒ Object
-
#send(params) ⇒ Object
target, sender, message, cp, mass_push, delimiter, flash, relative_time, relative_time_read, date_schedule, timezone, time_from, time_to, schedule_id, type.
- #status(id) ⇒ Object
- #status_(id) ⇒ Object
- #statuses(array_of_id) ⇒ Object
Methods inherited from HttpClient
Instance Method Details
#balance ⇒ Object
146 147 148 149 150 |
# File 'lib/terasms.rb', line 146 def balance result = submit Terasms.config.balance_url, {}, 'POST', 'json', Terasms.config.to_h.slice(:login, :password).to_json result.merge!({"info"=> error(main_status(result)), "status"=>"error"}) if main_status(result) < 0 result end |
#error(code) ⇒ Object
114 115 116 |
# File 'lib/terasms.rb', line 114 def error code ERRORS[code] end |
#main_status(result) ⇒ Object
118 119 120 |
# File 'lib/terasms.rb', line 118 def main_status result result["result"]["status"] rescue 'undefined' end |
#message_id(result) ⇒ Object
126 127 128 |
# File 'lib/terasms.rb', line 126 def result result["result"]["message_infos"].last["id"] rescue 'undefined' end |
#message_status(result) ⇒ Object
122 123 124 |
# File 'lib/terasms.rb', line 122 def result result["result"]["message_infos"].last["status"] rescue 'undefined' end |
#send(params) ⇒ Object
target, sender, message, cp, mass_push, delimiter, flash, relative_time, relative_time_read, date_schedule, timezone, time_from, time_to, schedule_id, type
132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/terasms.rb', line 132 def send params result = submit Terasms.config.url, {}, 'POST', 'json', Terasms.config.to_h.tap{|hs| hs.delete(:url)}.merge(params).to_json if main_status(result) < 0 result.merge!({"info"=> error(main_status(result)), "status"=>"error"}) else if (result) < 0 result.merge!({"info"=> error((result)), "status"=>"error"}) else result.merge!({"id"=> (result)}) end end result end |
#status(id) ⇒ Object
164 165 166 167 168 169 170 171 |
# File 'lib/terasms.rb', line 164 def status id begin raise 'wrong message id' if statuses([id])["result"]["statuses"] == [] {"result"=> "success"}.merge(statuses([id])["result"]["statuses"].last.slice("status", "status_desc")) rescue => error {"result"=> "error", "info" => error.to_s} end end |
#status_(id) ⇒ Object
156 157 158 159 160 161 162 |
# File 'lib/terasms.rb', line 156 def status_ id begin {"result"=> "success"}.merge(statuses([id])["result"]["statuses"].last.slice("status", "status_desc")) rescue => error {"result"=> "error", "info" => error.to_s} end end |