proyecto-web/backend/controllers/especialistaController.js

72 lines
2.3 KiB
JavaScript

'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
};