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

Seniru / defendxstore / 14091819605

26 Mar 2025 07:26PM UTC coverage: 64.888%. First build
14091819605

Pull #46

github

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

91 of 151 branches covered (60.26%)

Branch coverage included in aggregate %.

137 of 300 new or added lines in 20 files covered. (45.67%)

371 of 561 relevant lines covered (66.13%)

5.65 hits per line

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

19.57
/backend/src/controllers/forums.js
1
const { StatusCodes } = require("http-status-codes")
1✔
2
const createResponse = require("../utils/createResponse")
1✔
3
const ForumThread = require("../models/ForumThread")
1✔
4

5
const createThread = async (req, res, next) => {
1✔
NEW
6
    try {
×
NEW
7
        const { title, content, category } = req.body
×
NEW
8
        const user = req.user
×
NEW
9
        const thread = new ForumThread({
×
10
            title,
11
            category,
12
            content,
13
            createdDate: Date.now(),
14
            date: Date.now(),
15
            username: user.username,
16
        })
NEW
17
        await thread.save()
×
NEW
18
        return createResponse(res, StatusCodes.CREATED, "Created")
×
19
    } catch (error) {
NEW
20
        next(error)
×
21
    }
22
}
23

24
const getAllThreads = async (req, res, next) => {
1✔
NEW
25
    try {
×
NEW
26
        const user = req.user
×
NEW
27
        const forums = await ForumThread.find({}).exec()
×
NEW
28
        return createResponse(res, StatusCodes.OK, forums)
×
29
    } catch (error) {
NEW
30
        next(error)
×
31
    }
32
}
33

34
const getThread = async (req, res, next) => {
1✔
NEW
35
    try {
×
NEW
36
        const { threadId } = req.params
×
NEW
37
        const thread = await ForumThread.find({ _id: threadId }).exec()
×
NEW
38
        if (!thread) return createResponse(res, StatusCodes.NOT_FOUND, "Thread not found")
×
NEW
39
        return createResponse(res, StatusCodes.OK, thread)
×
40
    } catch (error) {
NEW
41
        next(error)
×
42
    }
43
}
44

45
const editThread = async (req, res, next) => {
1✔
NEW
46
    try {
×
NEW
47
        const { threadId } = req.params
×
NEW
48
        const { title, content, category } = req.body
×
NEW
49
        const thread = await ForumThread.findOneAndUpdate(
×
50
            { _id: threadId },
51
            { title, content, category, editedDate: Date.now() },
52
        ).exec()
NEW
53
        if (!thread) return createResponse(res, StatusCodes.NOT_FOUND, "Thread not found")
×
NEW
54
        return createResponse(res, StatusCodes.OK, "Thread updated")
×
55
    } catch (error) {
NEW
56
        next(error)
×
57
    }
58
}
59

60
const deleteThread = async (req, res, next) => {
1✔
NEW
61
    try {
×
NEW
62
        const { threadId } = req.params
×
NEW
63
        const forumThread = await ForumThread.findOneAndDelete({ _id: threadId }).exec()
×
NEW
64
        if (!forumThread) return createResponse(res, StatusCodes.NOT_FOUND, "Thread not found")
×
NEW
65
        return createResponse(res, StatusCodes.OK, "Thread deleted")
×
66
    } catch (error) {
NEW
67
        next(error)
×
68
    }
69
}
70

71
module.exports = {
1✔
72
    createThread,
73
    getAllThreads,
74
    getThread,
75
    editThread,
76
    deleteThread,
77
}
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