Skip to content

Commit b3d0560

Browse files
committed
initial commit
1 parent 24a1110 commit b3d0560

File tree

4 files changed

+55
-0
lines changed

4 files changed

+55
-0
lines changed

constants/roles.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const ROLES = {
44
APPOWNER: "app_owner",
55
MEMBER: "member",
66
ARCHIVED: "archived",
7+
IN_DISCORD: "inDiscord",
78
};
89

910
module.exports = ROLES;

controllers/users.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const { getPaginationLink, getUsernamesFromPRs } = require("../utils/users");
1212
const { getQualifiers } = require("../utils/helper");
1313
const { SOMETHING_WENT_WRONG, INTERNAL_SERVER_ERROR } = require("../constants/errorMessages");
1414
const { getFilteredPRsOrIssues } = require("../utils/pullRequests");
15+
const { IN_DISCORD } = require("../constants/roles");
1516

1617
const verifyUser = async (req, res) => {
1718
const userId = req.userData.id;
@@ -107,6 +108,7 @@ const getUsers = async (req, res) => {
107108
*/
108109

109110
const getUser = async (req, res) => {
111+
console.log(req.params.username);
110112
try {
111113
const result = await userQuery.fetchUser({ username: req.params.username });
112114
const { phone, email, ...user } = result.user;
@@ -462,6 +464,29 @@ const filterUsers = async (req, res) => {
462464
}
463465
};
464466

467+
// const syncInDiscordRole = async (req, res) => {
468+
// try {
469+
// } catch (error) {
470+
// logger.error(`Error while fetching all users: ${error}`);
471+
// return res.boom.serverUnavailable("Something went wrong please contact admin");
472+
// }
473+
// };
474+
475+
const fetchInDiscordUsers = async (req, res) => {
476+
try {
477+
const allUsers = await userQuery.fetchUsersWithRole(IN_DISCORD);
478+
479+
return res.json({
480+
message: "Users found successfully!",
481+
users: allUsers,
482+
count: allUsers.length,
483+
});
484+
} catch (error) {
485+
logger.error(`Error while fetching all users: ${error}`);
486+
return res.boom.serverUnavailable("Something went wrong please contact admin");
487+
}
488+
};
489+
465490
module.exports = {
466491
verifyUser,
467492
generateChaincode,
@@ -481,4 +506,5 @@ module.exports = {
481506
addDefaultArchivedRole,
482507
getUserSkills,
483508
filterUsers,
509+
fetchInDiscordUsers,
484510
};

models/users.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,30 @@ const getUsersBasedOnFilter = async (query) => {
409409
return userDocs;
410410
};
411411

412+
const fetchUsersWithRole = async (role) => {
413+
try {
414+
// console.log(role);
415+
const snapshot = await userModel.where(`roles.${role}`, "==", true).get();
416+
const onlyMembers = [];
417+
418+
if (!snapshot.empty) {
419+
snapshot.forEach((doc) => {
420+
onlyMembers.push({
421+
id: doc.id,
422+
...doc.data(),
423+
phone: undefined,
424+
email: undefined,
425+
tokens: undefined,
426+
});
427+
});
428+
}
429+
return onlyMembers;
430+
} catch (err) {
431+
logger.error("Error retrieving users data with roles of inDiscord", err);
432+
throw err;
433+
}
434+
};
435+
412436
module.exports = {
413437
addOrUpdate,
414438
fetchPaginatedUsers,
@@ -424,4 +448,5 @@ module.exports = {
424448
getRdsUserInfoByGitHubUsername,
425449
fetchUsers,
426450
getUsersBasedOnFilter,
451+
fetchUsersWithRole,
427452
};

routes/users.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ router.get("/self", authenticate, users.getSelfDetails);
1616
router.get("/isUsernameAvailable/:username", authenticate, users.getUsernameAvailabilty);
1717
router.get("/chaincode", authenticate, users.generateChaincode);
1818
router.get("/search", userValidator.validateUserQueryParams, users.filterUsers);
19+
router.get("/InDiscord", authenticate, users.fetchInDiscordUsers);
1920
router.get("/:username", users.getUser);
2021
router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro);
2122
router.put("/self/intro", authenticate, userValidator.validateJoinData, users.addUserIntro);
@@ -29,4 +30,6 @@ router.patch("/rejectDiff", authenticate, authorizeRoles([SUPERUSER]), users.rej
2930
router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), users.updateUser);
3031
router.get("/suggestedUsers/:skillId", authenticate, authorizeRoles([SUPERUSER]), users.getSuggestedUsers);
3132

33+
router.post("/syncInDiscord", authenticate, users.getSelfDetails);
34+
3235
module.exports = router;

0 commit comments

Comments
 (0)