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
Hide 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')
...
@@ -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
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
VER_MAS_OPTION_ID
=
'99'
;
let
MOSTRANDO_PROVINCIAS_HASTA_KEY
=
'mostrando_provincias_hasta'
let
MOSTRANDO_PROVINCIAS_HASTA_KEY
=
'mostrando_provincias_hasta'
let
MOSTRANDO_MEDICOS_ESPECIALIDAD_HASTA_KEY
=
'mostrando_medicos_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_PROVINCIA
=
'id_provincia'
let
ID_AGENDA
=
'id_agenda'
let
ID_AGENDA
=
'id_agenda'
let
ID_PERSONA_INSTITUCIONAL
=
'id_persona_institucional'
let
ID_PERSONA_INSTITUCIONAL
=
'id_persona_institucional'
...
@@ -40,7 +41,7 @@ async function getSiguientesProvinciasMostrar(userData) {
...
@@ -40,7 +41,7 @@ async function getSiguientesProvinciasMostrar(userData) {
let
choices
=
[];
let
choices
=
[];
let
desde
=
getMostrandoDesde
(
userData
,
MOSTRANDO_PROVINCIAS_HASTA_KEY
);
let
desde
=
getMostrandoDesde
(
userData
,
MOSTRANDO_PROVINCIAS_HASTA_KEY
);
let
iter
=
desde
;
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
));
choices
.
push
(
utils
.
armarChoice
(
provincias
[
iter
].
id_provincia
,
provincias
[
iter
].
descripcion
));
}
}
if
(
iter
!==
provincias
.
length
){
if
(
iter
!==
provincias
.
length
){
...
@@ -75,7 +76,7 @@ async function getSiguientesMedicosMostrar(userData){
...
@@ -75,7 +76,7 @@ async function getSiguientesMedicosMostrar(userData){
//Armamos picker
//Armamos picker
let
choices
=
[];
let
choices
=
[];
let
iter
=
desde
;
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
}
`
;
let
medico_especialidad
=
`
${
medicos_especialidad
[
iter
].
nombre
}
- Especialidad:
${
medicos_especialidad
[
iter
].
especialidad
}
`
;
choices
.
push
(
utils
.
armarChoice
(
medicos_especialidad
[
iter
].
agendaId
.
toString
(),
medico_especialidad
));
choices
.
push
(
utils
.
armarChoice
(
medicos_especialidad
[
iter
].
agendaId
.
toString
(),
medico_especialidad
));
}
}
...
@@ -87,9 +88,36 @@ async function getSiguientesMedicosMostrar(userData){
...
@@ -87,9 +88,36 @@ async function getSiguientesMedicosMostrar(userData){
return
choices
;
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
)
{
function
updateChoicesMostradas
(
userData
,
hastaKey
)
{
let
desde
=
getMostrandoDesde
(
userData
,
hastaKey
);
let
desde
=
getMostrandoDesde
(
userData
,
hastaKey
);
userData
[
hastaKey
]
=
desde
+
OPTIONS
;
userData
[
hastaKey
]
=
desde
+
OPTIONS
_LIMIT
;
return
userData
;
return
userData
;
}
}
...
@@ -225,34 +253,37 @@ module.exports =
...
@@ -225,34 +253,37 @@ module.exports =
await
this
.
ask_hora_turno
(
message
,
userData
,
website_id
,
session_id
);
await
this
.
ask_hora_turno
(
message
,
userData
,
website_id
,
session_id
);
},
},
ask_hora_turno
:
async
function
(
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
=
await
getSiguientesTurnosMostrar
(
website_id
,
session_id
,
userData
);
let
choices
=
[];
userData
=
updateChoicesMostradas
(
userData
,
MOSTRANDO_TURNOS_HASTA_KEY
);
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
fechaArg
=
userData
[
FECHA_TURNO
];
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
.
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
);
await
crisp
.
setSiguientePaso
(
website_id
,
session_id
,
pasos
.
RESP_HORA_TURNO
,
userData
);
},
},
resp_hora_turno
:
async
function
(
message
,
userData
,
website_id
,
session_id
){
resp_hora_turno
:
async
function
(
message
,
userData
,
website_id
,
session_id
){
let
turnoElegidoChoice
=
getChoiceElegida
(
message
);
let
choiceElegida
=
getChoiceElegida
(
message
);
let
turnosDisponibles
=
userData
[
TURNOS_DISPONIBLES
];
if
(
choiceElegida
.
value
===
VER_MAS_OPTION_ID
){
let
turno
;
//Mostrar mas turnos
for
(
let
i
=
0
;
i
<
turnosDisponibles
.
length
;
i
++
){
let
choices
=
await
getSiguientesTurnosMostrar
(
website_id
,
session_id
,
userData
);
let
horaArg
=
turnoElegidoChoice
.
label
;
userData
=
updateChoicesMostradas
(
userData
,
MOSTRANDO_TURNOS_HASTA_KEY
);
let
fechaHoraArg
=
`
${
userData
[
FECHA_TURNO
]}
${
horaArg
}
`
;
let
fechaArg
=
userData
[
FECHA_TURNO
];
let
fechaHoraUsa
=
fechaHoraArgToFechaHoraUsa
(
fechaHoraArg
);
await
crisp
.
updateUserData
(
website_id
,
session_id
,
userData
)
if
(
fechaHoraUsa
===
turnosDisponibles
[
i
].
fechaHora
){
await
crisp
.
sendPickerMessage
(
website_id
,
session_id
,
pasos
.
RESP_HORA_TURNO
,
`Seleccione un turno para el
${
fechaArg
}
`
,
choices
);
turno
=
turnosDisponibles
[
i
];
}
else
{
//Set turno elegido y avanzar
let
turnosDisponibles
=
userData
[
TURNOS_DISPONIBLES
];
let
turno
;
for
(
let
i
=
0
;
i
<
turnosDisponibles
.
length
;
i
++
){
let
horaArg
=
choiceElegida
.
label
;
let
fechaHoraArg
=
`
${
userData
[
FECHA_TURNO
]}
${
horaArg
}
`
;
let
fechaHoraUsa
=
fechaHoraArgToFechaHoraUsa
(
fechaHoraArg
);
if
(
fechaHoraUsa
===
turnosDisponibles
[
i
].
fechaHora
){
turno
=
turnosDisponibles
[
i
];
}
}
}
userData
[
TURNO_ELEGIDO
]
=
turno
;
await
this
.
ask_tipo_documento
(
message
,
userData
,
website_id
,
session_id
);
}
}
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
){
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'
);
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