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