• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Seniru / defendxstore / 14076163911

26 Mar 2025 05:26AM UTC coverage: 79.605%. First build
14076163911

Pull #46

github

web-flow
Merge c27bea27c into e4232eba9
Pull Request #46: Sprint 1

91 of 119 branches covered (76.47%)

Branch coverage included in aggregate %.

38 of 76 new or added lines in 8 files covered. (50.0%)

272 of 337 relevant lines covered (80.71%)

9.07 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

16.67
/backend/src/controllers/items.js
1
const mongoose = require("mongoose")
1✔
2
const Item = require("../models/Item")
1✔
3
const createResponse = require("../utils/createResponse")
1✔
4
const { StatusCodes } = require("http-status-codes")
1✔
5

6
// Get All Items
7
const getAllItems = async (req, res) => {
1✔
NEW
8
    try {
×
NEW
9
        const items = await Item.find()
×
NEW
10
        createResponse(res, StatusCodes.OK, items)
×
11
    } catch (error) {
NEW
12
        next(error)
×
13
    }
14
}
15

16
// Get Item by ID
17
const getItemById = async (req, res) => {
1✔
NEW
18
    const { id } = req.params
×
NEW
19
    try {
×
NEW
20
        if (!mongoose.Types.ObjectId.isValid(id)) {
×
NEW
21
            return createResponse(res, StatusCodes.BAD_REQUEST, "Invalid id for item")
×
22
        }
NEW
23
        const item = await Item.findById(id)
×
NEW
24
        if (!item) {
×
NEW
25
            return createResponse(res, StatusCodes.NOT_FOUND, "Item not found")
×
26
        }
NEW
27
        return createResponse(res, StatusCodes.OK, item)
×
28
    } catch (error) {
NEW
29
        next(error)
×
30
    }
31
}
32

33
// Create Item
34
const createItem = async (req, res) => {
1✔
NEW
35
    const item = req.body
×
NEW
36
    const newItem = new Item(item)
×
NEW
37
    try {
×
NEW
38
        await newItem.save()
×
NEW
39
        return createResponse(res, StatusCodes.CREATED, newItem)
×
40
    } catch (error) {
NEW
41
        next(error)
×
42
    }
43
}
44

45
// Update Item
46
const updateItem = async (req, res) => {
1✔
NEW
47
    const { id } = req.params
×
NEW
48
    const item = req.body
×
NEW
49
    try {
×
NEW
50
        if (!mongoose.Types.ObjectId.isValid(id)) {
×
NEW
51
            return createResponse(res, StatusCodes.BAD_REQUEST, "Invalid id for item")
×
52
        }
NEW
53
        const updatedItem = await Item.findByIdAndUpdate(id, item, { new: true })
×
NEW
54
        if (!updatedItem) {
×
NEW
55
            return createResponse(res, StatusCodes.NOT_FOUND, "Item not found")
×
56
        }
NEW
57
        return createResponse(res, StatusCodes.OK, updatedItem)
×
58
    } catch (error) {
NEW
59
        next(error)
×
60
    }
61
}
62

63
// Delete Item
64
const deleteItem = async (req, res) => {
1✔
NEW
65
    const { id } = req.params
×
NEW
66
    try {
×
NEW
67
        if (!mongoose.Types.ObjectId.isValid(id)) {
×
NEW
68
            return createResponse(res, StatusCodes.BAD_REQUEST, "Invalid id for item")
×
69
        }
NEW
70
        const deletedItem = await Item.findByIdAndDelete(id)
×
NEW
71
        if (!deletedItem) {
×
NEW
72
            return createResponse(res, StatusCodes.NOT_FOUND, "Item not found")
×
73
        }
NEW
74
        return createResponse(res, StatusCodes.OK, "Item deleted")
×
75
    } catch (error) {
NEW
76
        next(error)
×
77
    }
78
}
79

80
module.exports = {
1✔
81
    getAllItems,
82
    getItemById,
83
    createItem,
84
    updateItem,
85
    deleteItem,
86
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc