require 'imperituroard/projects/mhub/subs/evrotorg/gms_connector' class Gmsgms_2 attr_accessor :gms_t_login, :gms_t_password, :gms_r_login, :gms_r_password, :gms_t_connector, :gms_r_connector def initialize(gms_t_login, gms_t_password, gms_r_login, gms_r_password, telegram_api_url, telegram_chat_id) @gms_t_login = gms_t_login @gms_t_password = gms_t_password @gms_r_login = gms_r_login @gms_r_password = gms_r_password @gms_t_connector = Gms_2.new(gms_t_login, gms_t_password, telegram_api_url, telegram_chat_id) @gms_r_connector = Gms_2.new(gms_r_login, gms_r_password, telegram_api_url, telegram_chat_id) @internal_func = InternalFunc.new @telegram_connector = Telegram_2.new(telegram_api_url, telegram_chat_id) end def gms_parsing(gms_answer) output = {} status_dic = { 12033 => "Sent to Viber", 36013 => "Viber internal failure", 36023 => "Viber invalid service id", 36033 => "Viber invalid data", 36043 => "Viber blocked message type", 36053 => "Viber bad message type", 36063 => "Viber bad parameters", 36073 => "Viber timeout", 36083 => "Viber user blocked", 36093 => "Viber not viber user", 36103 => "Viber no suitable device", 36113 => "Viber unauthorized ip", 36123 => "Viber already sent", 36133 => "Viber not permitted", 36143 => "Viber billing failure", 36153 => "Viber word in black list", 36163 => "Viber internal process error", 36173 => "Viber wrong or missing Label", 36183 => "Viber invalid TTL value", 23033 => "Viber delivered", 35015 => "Viber expired", 24013 => "Viber delivered(seen)", 28013 => "Viber delivered(overdue)", -1 => "in progress" } if gms_answer[:code] == 200 dt1 = gms_answer[:body][:res_body]["reports"][0] hyber_status = dt1["hyber_status"] output = {:code => 200, :result => "Processed", :body => {"status_code": hyber_status, "status": status_dic[hyber_status], "phone_number": dt1["phone_number"], "message_id": dt1["extra_id"]}} elsif gms_answer[:code] == 404 output = {:code => 404, :result => "Not found", :body => {"status_code": "", "status": "", "phone_number": "", "message_id": gms_answer[:body][:request_message][:external_id]}} else output = {:code => gms_answer[:code], :result => gms_answer[:result], :body => {"status_code": "", "status": "", "phone_number": "", "message_id": gms_answer[:body][:request_message][:external_id]}} end output end def get_t_status_external_2(external_id) output = {} begin ans = gms_t_connector.get_advanced_by_external(external_id) parsed = gms_parsing(ans) output = {:gms_answer => ans, :parsed_answer => parsed} rescue pars = {:code => "505", :result => "Failed", :body => {"status_code": "", "status": "", "phone_number": "", "message_id": ""}} output = {:gms_answer => ans, :parsed_answer => pars} end output end def get_r_status_external_2(external_id) output = {} begin ans = gms_r_connector.get_advanced_by_external(external_id) parsed = gms_parsing(ans) output = {:gms_answer => ans, :parsed_answer => parsed} rescue pars = {:code => "505", :result => "Failed", :body => {"status_code": "", "status": "", "phone_number": "", "message_id": ""}} output = {:gms_answer => ans, :parsed_answer => pars} end output end end