Skip to content

Commit 65e981c

Browse files
committed
Added pagination for all user route
1 parent 539d3be commit 65e981c

File tree

2 files changed

+32
-404
lines changed

2 files changed

+32
-404
lines changed

server/app.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,42 @@ app.use(cors());
1212
router.get("/users/all", async (req, res) => {
1313
try {
1414
console.log(`${new Date().toISOString()} - All users request hit!`);
15+
let { page, limit } = req.query;
1516

16-
const users = await prisma.user.findMany({});
17+
if (!page && !limit) {
18+
page = 1;
19+
limit = 5;
20+
}
21+
22+
if (page <= 0) {
23+
return res.status(HTTP_STATUS.UNPROCESSABLE_ENTITY).send({
24+
success: false,
25+
message: "Page value must be 1 or more",
26+
data: null,
27+
});
28+
}
29+
30+
if (limit <= 0) {
31+
return res.status(HTTP_STATUS.UNPROCESSABLE_ENTITY).send({
32+
success: false,
33+
message: "Limit value must be 1 or more",
34+
data: null,
35+
});
36+
}
37+
38+
const users = await prisma.user.findMany({
39+
skip: Number(page - 1) * Number(limit),
40+
take: Number(limit),
41+
});
42+
43+
const total = await prisma.user.count();
1744
return res.status(HTTP_STATUS.OK).send({
1845
success: true,
1946
message: "Successfully received all users",
20-
data: users,
47+
data: {
48+
users: users,
49+
total: total,
50+
},
2151
});
2252
} catch (error) {
2353
console.log(error);

0 commit comments

Comments
 (0)