Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

222
Views
I have these controllers that deletes a user, i want to implement DRY(Don't repeat yourself) principle and make the res json message dynamic

I want to implement a DRY principle for my code below which deletes two different user and also i want to implement a dynamic response based on the details of the model provided to the find method

//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
    }
}

//the code here deletes the teachers

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
    }
}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

As I understood your question, you need something like this:

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
    }
}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!