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 => 'Превышен дневной лимит рассылки (Вы можете установить максимальную сумму ежедневной рассылки после согласования с Вашим менеджером)', -999 => 'Ошибка обработки ответа API' }
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
- #statuses(array_of_id) ⇒ Object
Methods inherited from HttpClient
Instance Method Details
#balance ⇒ Object
147 148 149 150 151 |
# File 'lib/terasms.rb', line 147 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
115 116 117 |
# File 'lib/terasms.rb', line 115 def error code ERRORS[code] end |
#main_status(result) ⇒ Object
119 120 121 |
# File 'lib/terasms.rb', line 119 def main_status result result["result"]["status"] rescue -999 end |
#message_id(result) ⇒ Object
127 128 129 |
# File 'lib/terasms.rb', line 127 def result result["result"]["message_infos"].last["id"] rescue -999 end |
#message_status(result) ⇒ Object
123 124 125 |
# File 'lib/terasms.rb', line 123 def result result["result"]["message_infos"].last["status"] rescue -999 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
133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/terasms.rb', line 133 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
157 158 159 160 161 162 163 164 |
# File 'lib/terasms.rb', line 157 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 |