initial commit

This commit is contained in:
2022-01-04 16:13:33 -03:00
commit a361ea1d34
51 changed files with 12795 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
'use strict'
var Cita = require('../models/cita.js');
function list_citas(req, res) {
Cita.find({}, (err, citas) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get citas!' });
}
res.status(200).send({ citas });
}).populate({
path: 'disponibilidad',
populate: {
path: 'especialista',
populate: {
path: 'especialidad'
}
}
});
}
function new_cita(req, res) {
try {
let cita = new Cita();
cita.rut = req.body.rut;
cita.disponibilidad = req.body.disponibilidad;
cita.save((err, citaSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save cita to database!> ${err}` });
}
res.status(200).send({ cita: citaSave });
});
}
catch (error) {
res.status(500).send({ message: `error: ` + error });
}
}
function delete_cita(req, res) {
let id = { '_id': req.params.id };
Cita.deleteOne(id, (err, cita) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete cita from database!> ${err}` });
}
if (cita.deletedCount == 1) {
res.status(200).send({ message: `Cita deleted!` });
}
else {
res.status(400).send({ message: `Error: Cita could not be deleted!` });
}
});
}
module.exports = {
list_citas,
new_cita,
delete_cita
};

View File

@@ -0,0 +1,140 @@
'use strict'
var Disponibilidad = require('../models/disponibilidad.js');
function list_disponibilidades(req, res) {
Disponibilidad.find({}, (err, disponibilidades) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get disponibilidades!' });
}
res.status(200).send({ disponibilidades });
}).populate({
path: 'especialista',
populate: {
path: 'especialidad'
}
});
}
function list_disponibilidades_especialista(req, res) {
let especialista = { 'especialista': req.params.id };
Disponibilidad.find(especialista, (err, disponibilidades) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get disponibilidades!' });
}
res.status(200).send({ disponibilidades });
}).populate({
path: 'especialista',
populate: {
path: 'especialidad'
}
}).sort(
{
fecha: 1,
horario: 1
}
);
}
function show_disponibilidad(req, res) {
let id = { '_id': req.params.id };
Disponibilidad.findOne(id, (err, disponibilidad) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get disponibilidad!' });
}
res.status(200).send({ disponibilidad });
}).populate({
path: 'especialista',
populate: {
path: 'especialidad'
}
});
}
function new_disponibilidad(req, res) {
try {
if (req.body.hasOwnProperty('disponibilidades')) {
for (let i = 0; i < req.body.disponibilidades.length; i++) {
let disponibilidad = new Disponibilidad();
disponibilidad.especialista = req.body.disponibilidades[i].especialista;
disponibilidad.fecha = req.body.disponibilidades[i].fecha;
disponibilidad.horario = req.body.disponibilidades[i].horario;
disponibilidad.save((err) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save disponibilidades to database!> ${err}` });
}
});
}
res.status(200).send({ message: 'Disponibilidades saved!' });
}
else{
let disponibilidad = new Disponibilidad();
disponibilidad.especialista = req.body.especialista;
disponibilidad.horario = req.body.horario;
disponibilidad.save((err, disponibilidadSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save disponibilidad to database!> ${err}` });
}
res.status(200).send({ disponibilidad: disponibilidadSave });
});
}
}
catch (error) {
res.status(500).send({ message: `error: ` + error });
}
}
function modify_disponibilidad(req, res) {
let disponibilidad = new Disponibilidad();
disponibilidad._id = req.params.id;
disponibilidad.disponible = req.body.disponible;
Disponibilidad.updateOne({ '_id': req.params.id }, disponibilidad, (err, disponibilidad) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save disponibilidad to database!> ${err}` });
}
if (disponibilidad.nModified == 1) {
res.status(200).send({ message: `Disponibilidad modified!` });
}
else {
res.status(400).send({ message: `Error: Disponibilidad could not be modified!` });
}
});
}
function delete_disponibilidad(req, res) {
let id = { '_id': req.params.id };
Disponibilidad.deleteOne(id, (err, disponibilidad) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete disponibilidad from database!> ${err}` });
}
if (disponibilidad.deletedCount == 1) {
res.status(200).send({ message: `Disponibilidad deleted!` });
}
else {
res.status(400).send({ message: `Error: Disponibilidad could not be deleted!` });
}
});
}
function delete_disponibilidades(req, res) {
Disponibilidad.deleteMany({}, (err, disponibilidad) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete disponibilidades from database!> ${err}` });
}
if (disponibilidad.deletedCount >= 1) {
res.status(200).send({ message: `Disponibilidades deleted!` });
}
else {
res.status(400).send({ message: `Error: Disponibilidades could not be deleted!` });
}
});
}
module.exports = {
list_disponibilidades,
list_disponibilidades_especialista,
show_disponibilidad,
new_disponibilidad,
modify_disponibilidad,
delete_disponibilidad,
delete_disponibilidades
};

View File

@@ -0,0 +1,59 @@
'use strict'
var Especialidad = require('../models/especialidad.js');
function list_especialidades(req, res) {
Especialidad.find({}, (err, especialidades) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get especialidades!' });
}
res.status(200).send({ especialidades });
});
}
function show_especialidad(req, res) {
let id = { '_id': req.params.id };
Especialidad.findOne(id, (err, especialidad) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get especialidad!' });
}
res.status(200).send({ especialidad });
});
}
function new_especialidad(req, res) {
try {
let especialidad = new Especialidad();
especialidad.descripcion = req.body.descripcion;
especialidad.save((err, especialidadSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save especialidad to database!> ${err}` });
}
res.status(200).send({ especialidad: especialidadSave });
});
}
catch (error) {
res.status(500).send({ message: `error: ` + error });
}
}
function delete_especialidad(req, res) {
let id = { '_id': req.params.id };
Especialidad.deleteOne(id, (err, especialidad) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete especialidad from database!> ${err}` });
}
if (especialidad.deletedCount == 1) {
res.status(200).send({ message: `Especialidad deleted!` });
}
else {
res.status(400).send({ message: `Error: Especialidad could not be deleted!` });
}
});
}
module.exports = {
list_especialidades,
show_especialidad,
new_especialidad,
delete_especialidad
};

View File

@@ -0,0 +1,71 @@
'use strict'
var Especialista = require('../models/especialista.js');
function list_especialistas(req, res) {
Especialista.find({}, (err, especialistas) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get especialistas!' });
}
res.status(200).send({ especialistas });
}).populate('especialidad');
}
function list_especialistas_especialidad(req, res) {
let especialidad = { 'especialidad': req.params.id };
Especialista.find(especialidad, (err, especialistas) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get especialistas!' });
}
res.status(200).send({ especialistas });
}).populate('especialidad');
}
function show_especialista(req, res) {
let id = { '_id': req.params.id };
Especialista.findOne(id, (err, especialista) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get especialista!' });
}
res.status(200).send({ especialista });
}).populate('especialidad');
}
function new_especialista(req, res) {
try {
let especialista = new Especialista();
especialista.nombre = req.body.nombre;
especialista.especialidad = req.body.especialidad;
especialista.save((err, especialistaSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save especialista to database!> ${err}` });
}
res.status(200).send({ especialista: especialistaSave });
});
}
catch (error) {
res.status(500).send({ message: `error: ` + error });
}
}
function delete_especialista(req, res) {
let id = { '_id': req.params.id };
Especialista.deleteOne(id, (err, especialista) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete especialista from database!> ${err}` });
}
if (especialista.deletedCount == 1) {
res.status(200).send({ message: `Especialista deleted!` });
}
else {
res.status(400).send({ message: `Error: Especialista could not be deleted!` });
}
});
}
module.exports = {
list_especialistas,
list_especialistas_especialidad,
show_especialista,
new_especialista,
delete_especialista
};

View File

@@ -0,0 +1,126 @@
'use strict'
var Usuario = require('../models/usuario.js');
const bcrypt = require('bcrypt-nodejs');
const service = require('../services/index')
function list_usuarios(req, res) {
Usuario.find({}, (err, usuario) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get usuarios!' });
}
res.status(200).send({ usuario });
});
}
function show_usuario(req, res) {
let usuario_to_find = { 'mail': req.params.mail };
Usuario.find(usuario_to_find, (err, usuario) => {
if (err) {
return res.status(500).send({ message: 'Error: Could not get usuario!' });
}
res.status(200).send({ usuario });
});
}
function new_usuario(req, res) {
try {
let usuario = new Usuario();
usuario.nombre = req.body.nombre;
usuario.mail = req.body.mail;
usuario.pass = req.body.pass;
usuario.activo = req.body.activo;
usuario.save((err, usuarioSave) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save usuario to database!> ${err}` });
}
res.status(200).send({ usuario: usuarioSave });
});
}
catch (error) {
res.status(500).send({ message: `error: ` + error });
}
}
function modify_usuario(req, res) {
let usuario = new Usuario();
usuario._id = req.params.id;
usuario.activo = req.body.activo;
Usuario.updateOne({ '_id': usuario._id }, usuario, (err, updatedUsuario) => {
if (err) {
return res.status(400).send({ message: `Error: Could not save usuario to database!> ${err}` });
}
if (updatedUsuario.nModified == 1) {
res.status(200).send({ message: `Usuario modified!` });
}
else {
res.status(400).send({ message: `Error: Usuario could not be modified!` });
}
});
}
function delete_usuario(req, res) {
let id = { '_id': req.params.id };
Usuario.deleteOne(id, (err, usuario) => {
if (err) {
return res.status(400).send({ message: `Error: Could not delete usuario from database!> ${err}` });
}
if (usuario.deletedCount == 1) {
res.status(200).send({ message: `Usuario deleted!` });
}
else {
res.status(400).send({ message: `Error: Usuario could not be deleted!` });
}
});
}
function validar_usuario(req, res) {
var password = req.body.pass;
Usuario.findOne({'mail': req.body.mail}, (err, user) => {
if (err) {
return res.status(500).send({ mensaje: 'error al realizar la peticion' });
}
if (!user) {
return res.status(401).send({ mensaje: 'Error: usuario no existe' });
}
if (!user.activo) {
return res.status(401).send({ 'mensaje': 'usuario no está activo'});
}
bcrypt.compare(password, user.pass, function(error, isMatch) {
if (error) {
res.status(500).send(`Error al validar usuario> ${error}`);
}
else if (!isMatch) {
res.status(401).send({ 'mensaje': 'incorrecto'});
}
else {
res.status(200).send({ 'mensaje': 'correcto', 'token': service.createToken(user)});
}
});
});
}
const validar_vigencia = (req, res) =>{
Usuario.findById(req.usuario, function (err, usuario) {
if (err) {
return res.status(401).send({'mensaje': 'usuario no autorizado'});
}
if (!usuario.activo) {
return res.status(401).send({'mensaje': 'usuario no es activo'});
}
return res.status(200).send({'usuario': usuario.mail});
});
}
module.exports = {
list_usuarios,
show_usuario,
new_usuario,
modify_usuario,
delete_usuario,
validar_usuario,
validar_vigencia
};