Handling DELETE Requests

על מנת למחוק רשומה נשתמש בפעולת Delete. הפעולה מוחקת לגמרי את הרשומה מה-DB.

לפעמים אנחנו רוצים soft delete כלומר, נניח שספר לא נמצא במלאי, אנחנו לא וצים להוריד אותו ממסד הנתונים, רק שלא יופיע ברשימה. במקרה כזה אפשר להוסיף שדה שאפשר לקרוא לו למשל active שיהיה true כברירת מחדל, ולהפוך אותו ל-false במידה ואנחנו לא רוצים שהרשומה תהיה פעילה. בשליפת הרשומה, נבדוק שהערך של active הוא true על מנת להציג את הרשומה.

על מנת לבטל רשומה אנחנו צריכים את המזהה שלה ולכן חלק מהפעולות דומות לבדיקות של רשומה חדשה שמכניסים.

app.delete('/books/:id', (req, res) => {
    if(ObjectId.isValid(req.params.id)){
        db.collection('books')
        .deleteOne({_id: new ObjectId(req.params.id)})
        .then(result =>{
            res.status(200).json(result)
        })
        .catch(err => {
            res.status(500).json({ error: "Could not delete the document"})
        })
    } else {
        res.status(500).json({ error: "Not a valid id"})
    } 
})

כדי להפעיל את הבקשה, נשתמש שוב ב-postman. כל מה שצריך זה לקרוא לפונקציית ה-delete ולשלוח אליה את ה-ID של הספר אותו רוצים למחוק.