Skip to content

Commit

Permalink
Merge pull request #42 from kentibs/feat/newletter
Browse files Browse the repository at this point in the history
feat: endpoints to get users be role
  • Loading branch information
Tibz-Dankan authored Feb 1, 2024
2 parents 0c34f26 + 7edded5 commit 98d3ab7
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/controllers/userController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,3 +488,69 @@ export const getUser = asyncHandler(
});
}
);

export const getUsersOfRoleUser = asyncHandler(
async (req: Request, res: Response, next: NextFunction) => {
const users = await User.findMany({
where: { role: { equals: "user" } },
select: {
userId: true,
firstName: true,
lastName: true,
role: true,
imageUrl: true,
createdAt: true,
updatedAt: true,
AccessTokens: {
select: { createdAt: true },
orderBy: { createdAt: "desc" },
take: 1,
},
},
});

res.status(200).json({
status: "success",
message: "User fetched successfully",
data: { users: users },
});
}
);

export const getUsersOfRoleAdmin = asyncHandler(
async (req: Request, res: Response, next: NextFunction) => {
const users = await User.findMany({
where: {
OR: [
{
role: { equals: "admin" },
},
{ firstName: { equals: "superadmin" } },
],
NOT: {
firstName: { equals: "system" },
},
},
select: {
userId: true,
firstName: true,
lastName: true,
role: true,
imageUrl: true,
createdAt: true,
updatedAt: true,
AccessTokens: {
select: { createdAt: true },
orderBy: { createdAt: "desc" },
take: 1,
},
},
});

res.status(200).json({
status: "success",
message: "User fetched successfully",
data: { users: users },
});
}
);
4 changes: 4 additions & 0 deletions src/routes/auth/userRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {
protect,
getUser,
signUp,
getUsersOfRoleUser,
getUsersOfRoleAdmin,
} from "../../controllers/userController";
import { uploadFile } from "../../utils/upload";
import { validateSignupToken } from "../../controllers/tokenController";
Expand All @@ -30,5 +32,7 @@ router.patch(
);
router.patch("/change-password/:userId", protect, changePassword);
router.get("/get-user/:userId", getUser);
router.get("/get-users-by-role-user", protect, getUsersOfRoleUser);
router.get("/get-users-by-role-admin", protect, getUsersOfRoleAdmin);

export { router as userRoutes };

0 comments on commit 98d3ab7

Please sign in to comment.