Commit c09cf0a0 authored by Gabriel's avatar Gabriel

Refactorizacion de pasos

parent 974a53e9
......@@ -75,15 +75,15 @@ module.exports =
choices = [];
choices.push(utils.armarChoice("1", "Si"));
choices.push(utils.armarChoice("2", "No"));
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[1], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[1], "Hola! Puedo ayudarte a reservar un turno, ¿te gustaría hacerlo?", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.ASK_PROVINCIA, userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.ASK_PROVINCIA, "Hola! Puedo ayudarte a reservar un turno, ¿te gustaría hacerlo?", choices);
},
ask_provincia: async function (message, userData, website_id, session_id) {
if (message.content.choices[0].selected === true) {
let choices = await getSiguientesProvinciasMostrar(userData);
userData = updateProvinciasMostradas(userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[2], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[2], "Selecciona tu provincia", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_PROVINCIA, userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_PROVINCIA, "Selecciona tu provincia", choices);
} else {
await crisp.sendTextMessage(website_id, session_id, "Gracias por contactarte! Estoy acá para cuando quieras reservar un turno");
}
......@@ -95,8 +95,8 @@ module.exports =
//Ver mas provincias
let choices = await getSiguientesProvinciasMostrar(userData);
userData = updateProvinciasMostradas(userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[2], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[2], "Selecciona tu provincia", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_PROVINCIA, userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_PROVINCIA, "Selecciona tu provincia", choices);
} else {
//Set provincia y avanzar
userData[ID_PROVINCIA] = message.content.choices[i].value;
......@@ -106,7 +106,7 @@ module.exports =
}
},
ask_nombre_medico: async function(message, userData, website_id, session_id){
userData[SIGUIENTE_PASO] = pasos.pasos[4];
userData[SIGUIENTE_PASO] = pasos.RESP_NOMBRE_MEDICO;
await crisp.updateUserData(website_id, session_id, userData);
await crisp.sendTextMessage(website_id, session_id,"¿Cómo se llama el médico?");
},
......@@ -141,8 +141,8 @@ module.exports =
choices.push(utils.armarChoice(medicos_especialidad[i].agendaId.toString(), medico_especialidad));
}
//TODO: agregar 'Mostrar mas'
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[6], "Seleccione uno de los médico encontrados, según su especialidad", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[6], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_MEDICO_ESPECIALIDAD, "Seleccione uno de los médico encontrados, según su especialidad", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_MEDICO_ESPECIALIDAD, userData);
},
resp_medico_especialidad: async function(message, userData, website_id, session_id){
for (let i = 0; i < message.content.choices.length; i++) {
......@@ -154,7 +154,7 @@ module.exports =
}
},
ask_fecha_turno: async function(message, userData, website_id, session_id){
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[8], userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_FECHA_TURNO, userData);
await crisp.sendTextMessage(website_id, session_id, `Cuándo querrías atenderte con ${userData[NOMBRE_MEDICO]}? (DD/MM/AAAA)`);
},
resp_fecha_turno: async function(message, userData, website_id, session_id){
......@@ -175,8 +175,8 @@ module.exports =
}
//TODO: agregar 'Mostrar mas'
userData[TURNOS_DISPONIBLES] = JSON.stringify(turnos);
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[10], "Seleccione un turno", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[10], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_HORA_TURNO, "Seleccione un turno", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_HORA_TURNO, userData);
},
resp_hora_turno: async function(message, userData, website_id, session_id){
let turnoElegidoChoice = getChoiceElegida(message);
......@@ -198,8 +198,8 @@ module.exports =
choices.push(utils.armarChoice("CED", "CED"));
choices.push(utils.armarChoice("CIE", "CIE"));
choices.push(utils.armarChoice("CM", "CM"));
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[12], "Tipo de documento", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[12], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_TIPO_DOCUMENTO, "Tipo de documento", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_TIPO_DOCUMENTO, userData);
},
resp_tipo_documento: async function(message, userData, website_id, session_id){
let tipoDocumentoElegido = getChoiceElegida(message);
......@@ -207,7 +207,7 @@ module.exports =
await this.ask_numero_documento(message, userData, website_id, session_id);
},
ask_numero_documento: async function(message, userData, website_id, session_id){
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[14], userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_NUMERO_DOCUMENTO, userData);
await crisp.sendTextMessage(website_id, session_id, 'Ingresa tu número de documento');
},
resp_numero_documento: async function(message, userData, website_id, session_id){
......@@ -215,7 +215,7 @@ module.exports =
await this.ask_fecha_nacimiento(message, userData, website_id, session_id);
},
ask_fecha_nacimiento: async function(message, userData, website_id, session_id){
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[16], userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_FECHA_NACIMIENTO, userData);
await crisp.sendTextMessage(website_id, session_id, 'Ingresa tu fecha de nacimiento (DD/MM/AAAA)');
},
resp_fecha_nacimiento: async function(message, userData, website_id, session_id){
......@@ -226,20 +226,20 @@ module.exports =
let choices = [];
choices.push(utils.armarChoice("M", "Masculino"));
choices.push(utils.armarChoice("F", "Femenino"));
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[18], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[12], 'Selecciona tu sexo', choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_SEXO, userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_SEXO, 'Selecciona tu sexo', choices);
},
resp_sexo: async function(message, userData, website_id, session_id){
userData[SEXO] = getChoiceElegida(message).value;
await this.ask_correo(message, userData, website_id, session_id);
},
ask_correo: async function(message, userData, website_id, session_id){
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[20], userData);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_CORREO, userData);
await crisp.sendTextMessage(website_id, session_id, 'Ingresa tu correo electrónico');
},
resp_correo: async function(message, userData, website_id, session_id){
userData[CORREO] = message.content;
if(!await is.existeUsuario() === true){
if(!await is.existeUsuario(userData[TIPO_DOCUMENTO], userData[NUMERO_DOCUMENTO], userData[FECHA_NACIMIENTO], userData[SEXO]) === true){
await crisp.sendTextMessage(website_id, session_id,
'No se pudieron validar sus datos. Solicite por favor su acceso por email ingresando al siguiente link'
);
......@@ -269,8 +269,8 @@ module.exports =
let choices = [];
choices.push(utils.armarChoice("Si", "Si"));
choices.push(utils.armarChoice("No", "No"));
await crisp.sendPickerMessage(website_id, session_id, pasos.pasos[22], "¿Quieres reservar otro turno?", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.pasos[22], userData);
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_RESERVAR_OTRO_TURNO, "¿Quieres reservar otro turno?", choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_RESERVAR_OTRO_TURNO, userData);
},
resp_reservar_otro_turno: async function(message, userData, website_id, session_id){
let choice = getChoiceElegida(message);
......
module.exports =
{
pasos: [
'ask_reservar_turno',
'ask_provincia',
'resp_provincia',
'ask_nombre_medico',
'resp_nombre_medico',
'ask_medico_especialidad',
'resp_medico_especialidad',
'ask_fecha_turno',
'resp_fecha_turno',
'ask_hora_turno',
'resp_hora_turno',
'ask_tipo_documento',
'resp_tipo_documento',
'ask_numero_documento',
'resp_numero_documento',
'ask_fecha_nacimiento',
'resp_fecha_nacimiento',
'ask_sexo',
'resp_sexo',
'ask_correo',
'resp_correo',
'ask_reservar_otro_turno',
'resp_reservar_otro_turno'
]
}
\ No newline at end of file
module.exports = Object.freeze({
ASK_RESERVAR_TURNO: 'ask_reservar_turno',
ASK_PROVINCIA: 'ask_provincia',
RESP_PROVINCIA: 'resp_provincia',
ASK_NOMBRE_MEDICO: 'ask_nombre_medico',
RESP_NOMBRE_MEDICO: 'resp_nombre_medico',
ASK_MEDICO_ESPECIALIDAD: 'ask_medico_especialidad',
RESP_MEDICO_ESPECIALIDAD: 'resp_medico_especialidad',
ASK_FECHA_TURNO: 'ask_fecha_turno',
RESP_FECHA_TURNO: 'resp_fecha_turno',
ASK_HORA_TURNO: 'ask_hora_turno',
RESP_HORA_TURNO: 'resp_hora_turno',
ASK_TIPO_DOCUMENTO: 'ask_tipo_documento',
RESP_TIPO_DOCUMENTO: 'resp_tipo_documento',
ASK_NUMERO_DOCUMENTO: 'ask_numero_documento',
RESP_NUMERO_DOCUMENTO: 'resp_numero_documento',
ASK_FECHA_NACIMIENTO: 'ask_fecha_nacimiento',
RESP_FECHA_NACIMIENTO: 'resp_fecha_nacimiento',
ASK_SEXO: 'ask_sexo',
RESP_SEXO: 'resp_sexo',
ASK_CORREO: 'ask_correo',
RESP_CORREO: 'resp_correo',
ASK_RESERVAR_OTRO_TURNO: 'ask_reservar_otro_turno',
RESP_RESERVAR_OTRO_TURNO: 'resp_reservar_otro_turno'
});
\ 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