Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AM - Renovacion Matricula: act. datos de contactos #1928

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,13 @@ export async function updateUser(documento, nombre, apellido, password) {
);
}

export async function updateEmailUser(documento, email) {
return await AuthUsers.findOneAndUpdate(
{ usuario: documento },
{ email }
);
}

export async function updateOrganizacion(usuario, idOrg) {
const org = usuario.user.organizaciones.find(organizacion => idOrg.toString() === organizacion._id.toString());
org.lastLogin = new Date();
Expand Down Expand Up @@ -219,7 +226,7 @@ export async function updateUserPermisos(req) {

const permisos = getPermisosByType(req.body.tipoPermisos);

if (permisos && permisos.length) {
if (permisos?.length) {
const organizacionPermisos = user.organizaciones;
if (organizacionPermisos && organizacionPermisos.length) {
permisos.forEach(e => {
Expand Down
28 changes: 27 additions & 1 deletion core/tm/routes/profesional.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import * as fs from 'fs';
import { Types } from 'mongoose';
import * as stream from 'stream';
import { Auth } from '../../../auth/auth.class';
import { findUser, updateEmailUser } from '../../../auth/auth.controller';
import { PacienteAppCtr } from '../../../../api/modules/mobileApp/pacienteApp.routes';
import { sendSms } from '../../../utils/roboSender/sendSms';
import { makePattern, toArray } from '../../../utils/utils';
import { streamToBase64 } from '../controller/file-storage';
Expand Down Expand Up @@ -1017,6 +1019,29 @@ router.patch('/profesionales/update/:id?', Auth.authenticate(), async (req, res,
if (req.body.domicilios || req.body.domiciliosMobile) {
const idProfesional = req.body.domicilios?.idProfesional ? req.body.domicilios.idProfesional : req.body.domiciliosMobile.idProfesional;
const profesional: any = await Profesional.findById(idProfesional);
if (req.body.domiciliosMobile.contactos) {
let emailUpdate;
let telefonoUpdate;
const indexEmail = req.body.domiciliosMobile.contactos.findIndex(item => item.tipo === 'email');
if (indexEmail >= 0) {
emailUpdate = req.body.domiciliosMobile.contactos[indexEmail].valor;
await updateEmailUser(profesional.documento, req.body.domiciliosMobile.contactos[indexEmail].valor);
}
const indexTelefono = req.body.domiciliosMobile.contactos.findIndex(item => item.tipo === 'celular');
if (indexTelefono >= 0) {
telefonoUpdate = req.body.domiciliosMobile.contactos[indexTelefono].valor;
}
const pacienteApp = await PacienteAppCtr.findOne({ documento: profesional.documento });
await PacienteAppCtr.update(
pacienteApp._id,
{
email: emailUpdate ? emailUpdate : pacienteApp.email,
telefono: telefonoUpdate ? telefonoUpdate : pacienteApp.telefono
},
req
);
}
profesional.contactos = req.body.domiciliosMobile.contactos ? req.body.domiciliosMobile.contactos : profesional.contactos;
profesional.domicilios = req.body.domicilios ? req.body.domicilios : req.body.domiciliosMobile.domicilios;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si se llama desde matriculaciones el campo domiciliosMobile no llega, por lo que habría que agregar un control.
En el caso. de domicilios si no llega ese campo. se va a pisar con un null lo que tenga registrado. el profesional antes del update

Auth.audit(profesional, (userScheduler as any));
await profesional.save();
Expand Down Expand Up @@ -1256,7 +1281,8 @@ router.post('/profesionales/validar', async (req, res, next) => {
const profesional = await Profesional.findOne(params);
if (profesional?.id) {
const token = await getTemporyTokenGenerarUsuario(documento);
return res.json({ profesional, token });
const userResponse = await findUser(documento);
return res.json({ profesional, user: userResponse?.user, token });
} else {
return next('El profesional no se encuentra registrado en Andes.');
}
Expand Down
Loading