Commit cb2c0abf authored by Gabriel's avatar Gabriel

Implementa flujo para reserva espontanea con casos de error

parent bbb9589f
......@@ -7,7 +7,6 @@ const config = require('config');
const LINK_CONDICIONES_DE_USO = 'https://www.integrandosalud.com/es-ar/ip-condiciones-de-uso/';
const ID_AGENDA_IPS = config.get('idAgendaIPS');
const ID_DOMINIO_IPS = config.get('idDominioIPS');
let ID_PERSONA_FEDERADA;
const SI = 'SI';
const NO = 'NO';
......@@ -122,28 +121,44 @@ module.exports =
},
resp_correo: async function(message, userData, website_id, session_id){
userData[CORREO] = message.content;
let federarResp = await is.federarUsuario(userData[TIPO_DOCUMENTO], userData[NUMERO_DOCUMENTO], userData[FECHA_NACIMIENTO], userData[SEXO]);
if(!federarResp.success){
//Error al federar
await crisp.sendTextMessage(website_id, session_id,'Uno de los datos ingresados es inválido');
await crisp.sendTextMessage(website_id, session_id,'Intentemos nuevamente');
await limpiarDatos(message, userData, website_id, session_id);
await this.ask_tipo_documento(message, userData, website_id, session_id);
}
else{
let turnoDemandaResp = await is.crearTurnoBajoDemanda(ID_AGENDA_IPS, ID_PERSONA_FEDERADA);
if(!turnoDemandaResp.success){
//Error al crear turno
await crisp.sendTextMessage(website_id, session_id,'Disculpame, en este momento no puedo contactarte con un profesional');
await crisp.sendTextMessage(website_id, session_id,'Por favor, intentá de nuevo en unos minutos');
await limpiarDatos(message, userData, website_id, session_id);
let existeUsuario = await is.existeUsuario(userData[TIPO_DOCUMENTO], userData[NUMERO_DOCUMENTO], userData[FECHA_NACIMIENTO], userData[SEXO]);
if(existeUsuario.existe){
if(existeUsuario.id_persona_federada !== null){
await this.crearTurnoBajoDemanda(ID_AGENDA_IPS, existeUsuario.id_persona_federada, message, userData, website_id, session_id);
}
else {
//Turno reservado exitosamente
await crisp.sendTextMessage(website_id, session_id,`Hacé click sobre "Iniciar consulta" para iniciar tu consulta`);
await crisp.sendTextMessage(website_id, session_id,`[Iniciar consulta](${turnoDemandaResp.link_vc})`);
await limpiarDatos(message, userData, website_id, session_id);
else{
let federarUsuario = await is.federarUsuario(userData[TIPO_DOCUMENTO], userData[NUMERO_DOCUMENTO], fechaArgToFechaUsa(userData[FECHA_NACIMIENTO]), userData[SEXO], userData[CORREO], userData[TELEFONO], ID_DOMINIO_IPS);
if(federarUsuario.id_persona_federada !== null){
await this.crearTurnoBajoDemanda(ID_AGENDA_IPS, federarUsuario.id_persona_federada, message, userData, website_id, session_id)
}
else{
await this.errorDatosInvalidos(message, userData, website_id, session_id);
}
}
}
else {
await this.errorDatosInvalidos(message, userData, website_id, session_id);
}
},
crearTurnoBajoDemanda: async function (idAgenda, idPersonaFederada, message, userData, website_id, session_id){
let turnoDemandaResp = await is.crearTurnoBajoDemanda(idAgenda, idPersonaFederada);
if(!turnoDemandaResp.success){
//Error al crear turno
await crisp.sendTextMessage(website_id, session_id,'Disculpame, en este momento no puedo contactarte con un profesional');
await crisp.sendTextMessage(website_id, session_id,'Por favor, intentá de nuevo en unos minutos');
await limpiarDatos(message, userData, website_id, session_id);
}
else {
//Turno reservado exitosamente
await crisp.sendTextMessage(website_id, session_id,`Hacé click sobre "Iniciar consulta" para iniciar tu consulta`);
await crisp.sendTextMessage(website_id, session_id,`[Iniciar consulta](${turnoDemandaResp.link_vc})`);
await limpiarDatos(message, userData, website_id, session_id);
}
},
errorDatosInvalidos: async function (message, userData, website_id, session_id){
await crisp.sendTextMessage(website_id, session_id,'Uno de los datos ingresados es inválido');
await crisp.sendTextMessage(website_id, session_id,'Intentemos nuevamente');
await limpiarDatos(message, userData, website_id, session_id);
await this.ask_tipo_documento(message, userData, website_id, session_id);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment