All files / src/controllers/system-controller getUsersFeedback.js

71.42% Statements 5/7
0% Branches 0/1
100% Functions 1/1
71.42% Lines 5/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40        3x 3x 3x 3x                                         3x                      
import FeedbacksModel from "../../models/Feedbacks.js";
import messageResponse from "../../utilities/messageResponse.js";
 
export default async function getUsersFeedback({ sliceNumber, sliceSize } = {}) {
    try {
        const limit = +sliceSize + 1
        const skip = sliceNumber * sliceSize
        const results = await FeedbacksModel.aggregate([
            { $skip: skip },
            { $limit: limit },
            {
                $lookup: {
                    from: "users",
                    localField: "userId",
                    foreignField: "_id",
                    as: "userData",
                    pipeline: [{ $project: { userName: true, avatar: true, _id: false } }]
                }
            },
            {
                $project: {
                    userData: { $arrayElemAt: ["$userData", 0] },
                    subject: true,
                    body: true,
                    createdAt: true,
                }
            }
        ])
        return {
            status: 200,
            response: {
                thereIsMore: !!results[sliceSize],
                feedbacks: results.slice(0, sliceSize)
            }
        }
    } catch (error) {
        console.log(error)
        return messageResponse("Unexpected error !")
    }
}