Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
node_crisp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
web
node_crisp
Commits
c09cf0a0
Commit
c09cf0a0
authored
Jun 02, 2021
by
Gabriel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactorizacion de pasos
parent
974a53e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
52 deletions
+47
-52
handlers.js
handlers.js
+22
-22
pasos.js
pasos.js
+25
-30
No files found.
handlers.js
View file @
c09cf0a0
...
...
@@ -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
);
...
...
pasos.js
View file @
c09cf0a0
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment