class Terasms::Sms

Constants

ERRORS

Public Instance Methods

balance() click to toggle source
# 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) click to toggle source
# File lib/terasms.rb, line 115
def error code
  ERRORS[code]
end
main_status(result) click to toggle source
# File lib/terasms.rb, line 119
def main_status result
  result["result"]["status"] rescue -999
end
message_id(result) click to toggle source
# File lib/terasms.rb, line 127
def message_id result
  result["result"]["message_infos"].last["id"] rescue -999
end
message_status(result) click to toggle source
# File lib/terasms.rb, line 123
def message_status result
  result["result"]["message_infos"].last["status"] rescue -999
end
send(params) click to toggle source

target, sender, message, cp, mass_push, delimiter, flash, relative_time, relative_time_read, date_schedule, timezone, time_from, time_to, schedule_id, type

# 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 message_status(result) < 0
      result.merge!({"info"=> error(message_status(result)), "status"=>"error"}) 
    else
      result.merge!({"id"=> message_id(result)})
    end
  end
  result
end
status(id) click to toggle source
# 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
statuses(array_of_id) click to toggle source
# File lib/terasms.rb, line 153
def statuses array_of_id
  submit(Terasms.config.status_url, {}, 'POST', 'json', Terasms.config.to_h.slice(:login, :password, :sign).merge({'message_ids': array_of_id}).to_json)
end