Quiero implementar un principio SECO para mi código a continuación que elimina dos usuarios diferentes y también quiero implementar una respuesta dinámica basada en los detalles del modelo proporcionado al método de búsqueda.
//This code here deletes the student exports.deleteStudent = async (req, res) => { try { let ID = req.query.id let exactStudent = await Student.findById(ID) if (!exactStudent) { return res.status(400).json({ error: "Student with the specified ID not present" }) } await Student.findByIdAndDelete(ID); res.status(200).json({ success: 'Student Deleted successfully ' }) } catch (error) { throw error } }//el código aquí borra a los profesores
exports.deleteTeacher = async (req, res) => { try { let ID = req.query.id let exactTeacher = await Teacher.findById(ID) if (!exactTeacher) { return res.status(400).json({ error: "Teacher with the specified ID not present" }) } await Teacher.findByIdAndDelete(ID); res.status(200).json({ error: 'Teacher Deleted successfully ' }) } catch (error) { throw error } }Como entendí tu pregunta, necesitas algo como esto:
async function deletePerson(Model, id) => { try { return await Model.findByIdAndDelete(id); } catch (error) { throw error; } } // Inside the controllers exports.deleteStudent = async (req, res) => { try { const deletedEntity = await deletePerson(Student, req.query.id); if (!deletedEntity) { return res.status(400).json({ error: "Student with the specified ID not present" }) } res.status(200).json({ error: 'Student Deleted successfully ' }) } catch (error) { throw error } } exports.deleteTeacher = async (req, res) => { try { const deletedEntity = await deletePerson(Teacher, req.query.id); if (!deletedEntity) { return res.status(400).json({ error: "Teacher with the specified ID not present" }) } res.status(200).json({ error: 'Teacher Deleted successfully ' }) } catch (error) { throw error } }