def obtener_status_campana_running(self, hopper_camp_id): """ retorona el status de la campana en wombat""" service_wombat = WombatService() url_edit = "api/reports/stats/?id={0}".format(hopper_camp_id) salida = service_wombat.list_config_wombat(url_edit) result = salida['result'] status = self.translate_state_wombat(result['statsOut']) return status
def notificar_incidencia_por_calificacion(self, dialer_call_id, regla): """ Notifica que se califico una llamada con una opcion con regla de incidencia Setea el extStatus correspondiente a la opcion elegida en la llamada de Wombat """ service_wombat = WombatService() url_notify = '/api/calls/?op=extstatus&wombatid={0}&status={1}'.format( dialer_call_id, regla.wombat_id) service_wombat.set_call_ext_status(url_notify)
def crear_lista_contactos_wombat(self, campana): """ Crea lista de contactos en wombat, se crear una lista tomando los contactos de la base de datos de contactos de la campana :param campana: campana de la cual se creara la lista """ service_wombat = WombatService() nombre_lista = '_'.join([str(campana.id), str(campana.bd_contacto.id), remplace_espacio_por_guion(campana.bd_contacto.nombre)]) nombre_lista_ascii = unicodedata.normalize('NFKD', nombre_lista) url_edit = "api/lists/?op=addToList&list={0}".format(nombre_lista_ascii) # crea lista de contactos en wombat service_wombat.update_lista_wombat("newcampaign_list_contacto.txt", url_edit)
def crear_trunk_campana_wombat(self, campana): """ Crea trunk para una campaign en wombat via curl :param campana: campana a la cual se le creara un trunk en wombat """ service_wombat = WombatService() # crea json de trunk para crear trunk en una campana de wombat service_wombat_config = TrunkCreator() service_wombat_config.create_json(campana) url_edit = "api/edit/campaign/trunk/?mode=E&parent={0}".format( campana.campaign_id_wombat) # crea trunk en la campana en wombat service_wombat.update_config_wombat("newcampaign_trunk.json", url_edit)
def obtener_dato_campana_run(self, campana): """ obtiene los datos de la campana pasada por parametro :param campana: campana a la cual deseo obtener sus datos :return: los datos de la campana """ service_wombat = WombatService() url_edit = "api/live/runs/" salida = service_wombat.list_config_wombat(url_edit) if salida: return self.obtener_datos_campana_json_de_wombat(salida, campana) else: return None
def crear_lista_contactos_wombat(self, campana): """ Crea lista de contactos en wombat, se crear una lista tomando los contactos de la base de datos de contactos de la campana :param campana: campana de la cual se creara la lista """ service_wombat = WombatService() nombre_lista_ascii = self.obtener_nombre_lista_ascii(campana) url_edit = "api/lists/?op=addToList&list={0}".format( nombre_lista_ascii) # crea lista de contactos en wombat service_wombat.update_lista_wombat("newcampaign_list_contacto.txt", url_edit)
def crear_endpoint_asociacion_campana_wombat(self, campana): """ Asociacion endpoint con campaign en wombat :param campana: campana a la cual se le desea asociar endpoint """ service_wombat = WombatService() # crear json de asociacion campana endpoint service_wombat_config = CampanaEndPointCreator() service_wombat_config.create_json(campana) url_edit = "api/edit/campaign/ep/?mode=E&parent={0}".format( campana.campaign_id_wombat) # crea asociacion de enpoint con campaign en wombat service_wombat.update_config_wombat("newcampaign_ep.json", url_edit)
def obtener_datos_campanas_run(self, campanas_por_id_wombat): """ obtiene los datos de las campanas pasada por parametro :param campana: diccionario con campanas (por wombat_id) a la cual deseo obtener sus datos :return: dict con los datos de la campanas indexado por id de campaña """ service_wombat = WombatService() url_edit = "api/live/runs/" salida = service_wombat.list_config_wombat(url_edit) if salida: return self.obtener_datos_campanas_json_de_wombat( salida, campanas_por_id_wombat) else: return None
def crear_reschedule_campana_wombat(self, campana, parametros): """ Crear reschedule(reglas de incidencia) para una campaign wn wombat via curl :param campana: campana a la cual se le creara reschudule :param parametros: parametros de la reschudule en wombat """ service_wombat = WombatService() # crea json para reschedule service_wombat_config = RescheduleRuleCreator() service_wombat_config.create_json(campana, parametros) url_edit = "api/edit/campaign/reschedule/?mode=E&parent={0}".format( campana.campaign_id_wombat) # crea reschedule wn wombat service_wombat.update_config_wombat("newcampaign_reschedule.json", url_edit)
def desasociacion_endpoint_campana_wombat(self, campana): """ Desasocia endpoint de campana wombat :param campana: campana a la caul se desaciociara el endpoint """ service_wombat = WombatService() # crear json para eliminar lista de la campana en wombat service_wombat_config = CampanaEndPointDelete() service_wombat_config.create_json(campana) url_edit = "api/edit/campaign/ep/?mode=D&parent={0}".format( campana.campaign_id_wombat) # elimina lista de la campana en wombat service_wombat.update_config_wombat("deletecampaign_ep.json", url_edit)
def eliminar_reschedule_por_calificacion_wombat(self, regla): campaign_id_wombat = regla.opcion_calificacion.campana.campaign_id_wombat list_url = "api/edit/campaign/reschedule/?mode=L&parent={0}".format( campaign_id_wombat) service_wombat = WombatService() salida = service_wombat.list_config_wombat(list_url) reschedule_data = self.obtener_reschedule_data_wombat( salida, regla.wombat_id) delete_url = "api/edit/campaign/reschedule/?mode=D&parent={0}".format( campaign_id_wombat) salida = service_wombat.post_json(delete_url, reschedule_data) if 'status' in salida and salida['status'] == 'OK': return True return False
def editar_reschedule_por_calificacion_wombat(self, regla, wombat_id): campaign_id_wombat = regla.opcion_calificacion.campana.campaign_id_wombat list_url = "api/edit/campaign/reschedule/?mode=L&parent={0}".format( campaign_id_wombat) service_wombat = WombatService() salida = service_wombat.list_config_wombat(list_url) reschedule_data = self.obtener_reschedule_data_wombat( salida, wombat_id) edit_url = "api/edit/campaign/reschedule/?mode=E&parent={0}".format( campaign_id_wombat) reschedule_data['statusExt'] = regla.wombat_id reschedule_data['maxAttempts'] = regla.intento_max reschedule_data['retryAfterS'] = regla.reintentar_tarde reschedule_data['mode'] = regla.get_en_modo_wombat() salida = service_wombat.post_json(edit_url, reschedule_data) if 'status' in salida and salida['status'] == 'OK': return True return False
def crear_lista_asociacion_campana_wombat(self, campana): """ crea asociacion de lista de contactos con campaign en wombat via curl :param campana: campana a la cual se le asociara la lista """ service_wombat = WombatService() url_edit = "api/edit/list/?mode=L" # Busco el listado de la lista de contactos de wombat salida = service_wombat.list_config_wombat(url_edit) # obtiene el list_id para la campana list_id = self.obtener_list_id_wombat(salida, campana) if not list_id: list_id = 1 # crea json de asociacion campana con el id de lista de contactos service_wombat_config = CampanaListCreator() service_wombat_config.create_json(list_id) url_edit = "api/edit/campaign/list/?mode=E&parent={0}".format( campana.campaign_id_wombat) # asocia lista de contactos con campaign en wombat salida = service_wombat.update_config_wombat( "newcampaign_list.json", url_edit)
def guardar_endpoint_campana_wombat(self, campana): """ Crea o edita endpoint para campaign en wombat via curl :param campana: campana para la cual se le creara endpoint :return: True si se guardo el ep_id en la queue_campana False si no lo guardo """ service_wombat = WombatService() # crea json de endpoint para crear endpoint en wombat service_wombat_config = EndPointCreator() service_wombat_config.create_json(campana) url_edit = "api/edit/ep/?mode=E" # crea o edita endpoint en wombat salida = service_wombat.update_config_wombat("newep.json", url_edit) results = salida['results'] # obtengo ep_id del endpoint recientemente creado ep_id = results[0]['epId'] if ep_id: # guardo el ep_id en la queue_campana campana.queue_campana.guardar_ep_id_wombat(ep_id) return True return False
def crear_campana_wombat(self, campana): """ Crear una campana en wombat a travez de curl :param campana: campana lo cual se desea una campaign en wombat :return: True si se realizo la creacion o False si no se pudo realizar la creacion de la campaign """ service_wombat = WombatService() # crea json de campaign para crear campaign en wombat service_wombat_config = CampanaCreator() service_wombat_config.create_json(campana) # crear campaing en wombat salida = service_wombat.update_config_wombat( "newcampaign.json", 'api/edit/campaign/?mode=E') results = salida['results'] # obtengo el campaign_id generado por wombat campaign_id = results[0]['campaignId'] if campaign_id: # guardo en la campana el campaign_id generado por wombat campana.guardar_campaign_id_wombat(campaign_id) return True return False
def desasociacion_campana_wombat(self, campana): """ Desasocia lista campana wombat :param campana: campana a la caul se desaciociara la lista """ service_wombat = WombatService() url_edit = "api/edit/campaign/list/?mode=L&parent={0}".format( campana.campaign_id_wombat) # obtiene listado de lista de contactos de wombat salida = service_wombat.list_config_wombat(url_edit) results = salida['results'] cclId = results[0]['cclId'] cclId = elimina_comillas(cclId) if not cclId: cclId = 0 # crear json para eliminar lista de contactos de la campana en wombat service_wombat_config = CampanaDeleteListCreator() service_wombat_config.create_json(cclId) url_edit = "api/edit/campaign/list/?mode=D&parent={0}".format( campana.campaign_id_wombat) # elimina lista de contactos de la campana en wombat salida = service_wombat.update_config_wombat( "deletecampaign_list.json", url_edit)
def obtener_calls_live(self): """ retorna las llamada e en vivo en este momento""" service_wombat = WombatService() url_edit = "api/live/calls/" salida = service_wombat.list_config_wombat(url_edit) return self.obtener_datos_calls(salida)