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
0d17d03c
Commit
0d17d03c
authored
Jun 04, 2021
by
Gabriel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Agrega opcion para mostrar mas turnos para la misma fecha
parent
a95c431b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
56 additions
and
25 deletions
+56
-25
handlers.js
handlers.js
+56
-25
No files found.
handlers.js
View file @
0d17d03c
...
...
@@ -5,10 +5,11 @@ const is = require('./endpoints/is.js')
let
LINK_SOLICITAR_ACCESO_POR_EMAIL
=
'https://www.integrandosalud.com/es-ar/integrando-pacientes-solicitar-acceso-por-email/'
;
let
OPTIONS
=
4
;
let
OPTIONS
_LIMIT
=
4
;
let
VER_MAS_OPTION_ID
=
'99'
;
let
MOSTRANDO_PROVINCIAS_HASTA_KEY
=
'mostrando_provincias_hasta'
let
MOSTRANDO_MEDICOS_ESPECIALIDAD_HASTA_KEY
=
'mostrando_medicos_hasta'
let
MOSTRANDO_TURNOS_HASTA_KEY
=
'mostrando_turnos_hasta'
let
ID_PROVINCIA
=
'id_provincia'
let
ID_AGENDA
=
'id_agenda'
let
ID_PERSONA_INSTITUCIONAL
=
'id_persona_institucional'
...
...
@@ -40,7 +41,7 @@ async function getSiguientesProvinciasMostrar(userData) {
let
choices
=
[];
let
desde
=
getMostrandoDesde
(
userData
,
MOSTRANDO_PROVINCIAS_HASTA_KEY
);
let
iter
=
desde
;
for
(
iter
;
iter
<
desde
+
OPTIONS
&&
iter
<
provincias
.
length
;
iter
++
)
{
for
(
iter
;
iter
<
desde
+
OPTIONS
_LIMIT
&&
iter
<
provincias
.
length
;
iter
++
)
{
choices
.
push
(
utils
.
armarChoice
(
provincias
[
iter
].
id_provincia
,
provincias
[
iter
].
descripcion
));
}
if
(
iter
!==
provincias
.
length
){
...
...
@@ -75,7 +76,7 @@ async function getSiguientesMedicosMostrar(userData){
//Armamos picker
let
choices
=
[];
let
iter
=
desde
;
for
(
iter
;
iter
<
desde
+
OPTIONS
&&
iter
<
medicos_especialidad
.
length
;
iter
++
){
for
(
iter
;
iter
<
desde
+
OPTIONS
_LIMIT
&&
iter
<
medicos_especialidad
.
length
;
iter
++
){
let
medico_especialidad
=
`
${
medicos_especialidad
[
iter
].
nombre
}
- Especialidad:
${
medicos_especialidad
[
iter
].
especialidad
}
`
;
choices
.
push
(
utils
.
armarChoice
(
medicos_especialidad
[
iter
].
agendaId
.
toString
(),
medico_especialidad
));
}
...
...
@@ -87,9 +88,36 @@ async function getSiguientesMedicosMostrar(userData){
return
choices
;
}
async
function
getSiguientesTurnosMostrar
(
website_id
,
session_id
,
userData
){
let
turnos
;
if
(
userData
[
TURNOS_DISPONIBLES
]
!=
null
){
turnos
=
userData
[
TURNOS_DISPONIBLES
];
}
else
{
turnos
=
await
is
.
getTurnosDisponibles
(
userData
[
ID_AGENDA
],
userData
[
ID_PERSONA_INSTITUCIONAL
],
fechaArgToFechaUsa
(
userData
[
FECHA_TURNO
]));
}
let
desde
=
getMostrandoDesde
(
userData
,
MOSTRANDO_TURNOS_HASTA_KEY
);
let
iter
=
desde
;
let
choices
=
[];
for
(
iter
;
iter
<
desde
+
OPTIONS_LIMIT
&&
iter
<
turnos
.
length
;
iter
++
){
let
fechaHoraUsa
=
turnos
[
iter
].
fechaHora
;
let
fechaHoraArg
=
fechaHoraUsaToFechaHoraArg
(
fechaHoraUsa
);
let
horaArg
=
fechaHoraArg
.
split
(
" "
)[
1
];
choices
.
push
(
utils
.
armarChoice
(
iter
.
toString
(),
horaArg
));
}
if
(
iter
!==
turnos
.
length
){
choices
.
push
(
utils
.
armarChoice
(
VER_MAS_OPTION_ID
,
'Ver más'
));
}
userData
[
TURNOS_DISPONIBLES
]
=
turnos
;
await
crisp
.
updateUserData
(
website_id
,
session_id
,
userData
);
return
choices
;
}
function
updateChoicesMostradas
(
userData
,
hastaKey
)
{
let
desde
=
getMostrandoDesde
(
userData
,
hastaKey
);
userData
[
hastaKey
]
=
desde
+
OPTIONS
;
userData
[
hastaKey
]
=
desde
+
OPTIONS
_LIMIT
;
return
userData
;
}
...
...
@@ -225,26 +253,28 @@ module.exports =
await
this
.
ask_hora_turno
(
message
,
userData
,
website_id
,
session_id
);
},
ask_hora_turno
:
async
function
(
message
,
userData
,
website_id
,
session_id
){
let
turnos
=
await
is
.
getTurnosDisponibles
(
userData
[
ID_AGENDA
],
userData
[
ID_PERSONA_INSTITUCIONAL
],
fechaArgToFechaUsa
(
userData
[
FECHA_TURNO
]));
let
choices
=
[];
for
(
let
i
=
0
;
i
<
turnos
.
length
&&
i
<
5
;
i
++
){
let
fechaHoraUsa
=
turnos
[
i
].
fechaHora
;
let
fechaHoraArg
=
fechaHoraUsaToFechaHoraArg
(
fechaHoraUsa
);
let
horaArg
=
fechaHoraArg
.
split
(
" "
)[
1
];
choices
.
push
(
utils
.
armarChoice
(
i
.
toString
(),
horaArg
));
}
//TODO: agregar 'Mostrar mas'
userData
[
TURNOS_DISPONIBLES
]
=
turnos
;
let
choices
=
await
getSiguientesTurnosMostrar
(
website_id
,
session_id
,
userData
);
userData
=
updateChoicesMostradas
(
userData
,
MOSTRANDO_TURNOS_HASTA_KEY
);
let
fechaArg
=
userData
[
FECHA_TURNO
];
await
crisp
.
sendPickerMessage
(
website_id
,
session_id
,
pasos
.
RESP_HORA_TURNO
,
`Seleccione un turno para el
${
fechaArg
}
`
,
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
);
let
choiceElegida
=
getChoiceElegida
(
message
);
if
(
choiceElegida
.
value
===
VER_MAS_OPTION_ID
){
//Mostrar mas turnos
let
choices
=
await
getSiguientesTurnosMostrar
(
website_id
,
session_id
,
userData
);
userData
=
updateChoicesMostradas
(
userData
,
MOSTRANDO_TURNOS_HASTA_KEY
);
let
fechaArg
=
userData
[
FECHA_TURNO
];
await
crisp
.
updateUserData
(
website_id
,
session_id
,
userData
)
await
crisp
.
sendPickerMessage
(
website_id
,
session_id
,
pasos
.
RESP_HORA_TURNO
,
`Seleccione un turno para el
${
fechaArg
}
`
,
choices
);
}
else
{
//Set turno elegido y avanzar
let
turnosDisponibles
=
userData
[
TURNOS_DISPONIBLES
];
let
turno
;
for
(
let
i
=
0
;
i
<
turnosDisponibles
.
length
;
i
++
){
let
horaArg
=
turnoElegidoChoice
.
label
;
let
horaArg
=
choiceElegida
.
label
;
let
fechaHoraArg
=
`
${
userData
[
FECHA_TURNO
]}
${
horaArg
}
`
;
let
fechaHoraUsa
=
fechaHoraArgToFechaHoraUsa
(
fechaHoraArg
);
if
(
fechaHoraUsa
===
turnosDisponibles
[
i
].
fechaHora
){
...
...
@@ -253,6 +283,7 @@ module.exports =
}
userData
[
TURNO_ELEGIDO
]
=
turno
;
await
this
.
ask_tipo_documento
(
message
,
userData
,
website_id
,
session_id
);
}
},
ask_tipo_documento
:
async
function
(
message
,
userData
,
website_id
,
session_id
){
await
crisp
.
sendTextMessage
(
website_id
,
session_id
,
'Perfecto, ahora vamos a asociar tu datos. Selecciona tu tipo de documento'
);
...
...
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