MCPcopy Create free account
hub / github.com/RealDevSquad/website-backend / getUsers

Function getUsers

controllers/users.js:90–310  ·  view source on GitHub ↗
(req, res)

Source from the content-addressed store, hash-verified

88 */
89
90const getUsers = async (req, res) => {
91 try {
92 // getting user details by id if present.
93 const { q, dev: devParam, query, profileStatus } = req.query;
94 const dev = devParam === "true";
95 const queryString = (dev ? q : query) || "";
96 const transformedQuery = parseSearchQuery(queryString);
97 const qualifiers = getQualifiers(queryString);
98 // Should throw an error if the new query parameter is without feature flag
99 if (q && !dev) {
100 return res.boom.notFound("Route not found");
101 }
102 // getting user details by id if present.
103
104 if (req.query.id) {
105 const id = req.query.id;
106 let result, user;
107 try {
108 result = await dataAccess.retrieveUsers({ id: id });
109 user = result.user;
110 } catch (error) {
111 logger.error(`Error while fetching user: ${error}`);
112 return res.boom.serverUnavailable(SOMETHING_WENT_WRONG);
113 }
114 if (!result.userExists) {
115 return res.boom.notFound("User doesn't exist");
116 }
117 return res.json({
118 message: "User returned successfully!",
119 user,
120 });
121 }
122
123 const profile = req.query.profile === "true";
124
125 if (profile) {
126 if (!req.userData.id) {
127 return res.boom.badRequest("User ID not provided.");
128 }
129
130 try {
131 const result = await dataAccess.retrieveUsers({ id: req.userData.id });
132 return res.send(result.user);
133 } catch (error) {
134 logger.error(`Error while fetching user: ${error}`);
135 return res.boom.serverUnavailable(INTERNAL_SERVER_ERROR);
136 }
137 }
138
139 if (profileStatus) {
140 const normalizedProfileStatus = String(profileStatus).trim().toUpperCase();
141 try {
142 const users = await userQuery.fetchUserForKeyValue("profileStatus", normalizedProfileStatus);
143 return res.json({
144 message: `Users with profile status ${normalizedProfileStatus} returned successfully!`,
145 count: users.length,
146 users: users,
147 });

Callers 1

Calls 8

getQualifiersFunction · 0.85
isLastPRMergedWithinDaysFunction · 0.85
getPaginationLinkFunction · 0.85
getOverdueTasksFunction · 0.85
getFilteredPRsOrIssuesFunction · 0.85
getUsernamesFromPRsFunction · 0.85
getUserStatusFunction · 0.70
parseSearchQueryFunction · 0.50

Tested by

no test coverage detected