Skip to content

Commit 7ffa20e

Browse files
refactor all occurrences of fetchUser,fetchUsers (#1293)
* refactor occurrences of fetchUser,fetchUsers * added unit tests * added lint fixes * refactor remaining fetchUser in users controller * added lint fix and test errors fix * added lint fix and test errors fix * added lint fix * refactor username * refactor for getDiscordUsers * added refactor for members model queries * added lint fix * remove extra spaces * added suggested change * handled edge case * added lint fix
1 parent 657de3f commit 7ffa20e

File tree

15 files changed

+129
-48
lines changed

15 files changed

+129
-48
lines changed

controllers/badges.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const { ERROR_MESSAGES, SUCCESS_MESSAGES } = require("../constants/badges");
22
const { CONTROLLERS: CONTROLLERS_ERROR_MESSAGES } = ERROR_MESSAGES;
33
const { CONTROLLERS: CONTROLLERS_SUCCESS_MESSAGES } = SUCCESS_MESSAGES;
44
const badgeQuery = require("../models/badges");
5-
const { fetchUser } = require("../models/users");
5+
const dataAccess = require("../services/dataAccessLayer");
66
const imageService = require("../services/imageService");
77

88
/**
@@ -76,7 +76,7 @@ async function postBadge(req, res) {
7676
async function postUserBadges(req, res) {
7777
try {
7878
const { badgeIds, userId } = req.body;
79-
const { userExists } = await fetchUser({ userId });
79+
const { userExists } = await dataAccess.retrieveUsers({ id: userId });
8080
if (!userExists) {
8181
throw Error(ERROR_MESSAGES.MISC.USER_ID_DOES_NOT_EXIST);
8282
}

controllers/cloudflareCache.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
const logsQuery = require("../models/logs");
2-
const userQuery = require("../models/users");
32
const cloudflare = require("../services/cloudflareService");
43
const { logType } = require("../constants/logs");
54
const { MAX_CACHE_PURGE_COUNT } = require("../constants/cloudflareCache");
65
const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
6+
const dataAccess = require("../services/dataAccessLayer");
77

88
/**
99
* Purges the Cache of Members Profile Page
@@ -21,7 +21,7 @@ const purgeCache = async (req, res) => {
2121
if (req.body.user) {
2222
if (roles.super_user) {
2323
const { user } = req.body;
24-
const userDetails = await userQuery.fetchUser({ username: user });
24+
const userDetails = await dataAccess.retrieveUsers({ username: user });
2525
if (!userDetails.userExists) {
2626
return res.boom.badRequest();
2727
}

controllers/contributions.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
const contributionsService = require("../services/contributions");
2-
const { fetchUser } = require("../models/users");
32
const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
4-
3+
const dataAccess = require("../services/dataAccessLayer");
54
/**
65
* Get the contributions of the user
76
* @param {Object} req - Express request object
@@ -10,8 +9,8 @@ const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
109

1110
const getUserContributions = async (req, res) => {
1211
try {
13-
const username = req.params.username;
14-
const result = await fetchUser({ username: req.params.username });
12+
const { username } = req.params;
13+
const result = await dataAccess.retrieveUsers({ username: req.params.username });
1514
if (result.userExists) {
1615
const contributions = await contributionsService.getUserContributions(username);
1716
return res.json(contributions);

controllers/external-accounts.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const externalAccountsModel = require("../models/external-accounts");
22
const { SOMETHING_WENT_WRONG, INTERNAL_SERVER_ERROR } = require("../constants/errorMessages");
33
const { getDiscordMembers } = require("../services/discordService");
4-
const { getDiscordUsers, addOrUpdate } = require("../models/users");
4+
const { addOrUpdate } = require("../models/users");
5+
const { retrieveDiscordUsers } = require("../services/dataAccessLayer");
56
const logger = require("../utils/logger");
67

78
const addExternalAccountData = async (req, res) => {
@@ -51,7 +52,7 @@ const getExternalAccountData = async (req, res) => {
5152
*/
5253
const syncExternalAccountData = async (req, res) => {
5354
try {
54-
const [discordUserData, rdsUserData] = await Promise.all([getDiscordMembers(), getDiscordUsers()]);
55+
const [discordUserData, rdsUserData] = await Promise.all([getDiscordMembers(), retrieveDiscordUsers()]);
5556
const rdsUserDataMap = {};
5657
const updateUserDataPromises = [];
5758

controllers/members.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
const ROLES = require("../constants/roles");
22
const members = require("../models/members");
33
const tasks = require("../models/tasks");
4-
const { fetchUser } = require("../models/users");
54
const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
6-
5+
const dataAccess = require("../services/dataAccessLayer");
76
/**
87
* Fetches the data about our members
98
*
@@ -13,8 +12,7 @@ const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
1312

1413
const getMembers = async (req, res) => {
1514
try {
16-
const allUsers = await members.fetchUsers(req.query);
17-
15+
const allUsers = await dataAccess.retrieveMembers(req.query);
1816
return res.json({
1917
message: allUsers.length ? "Members returned successfully!" : "No member found",
2018
members: allUsers,
@@ -34,7 +32,7 @@ const getMembers = async (req, res) => {
3432

3533
const getIdleMembers = async (req, res) => {
3634
try {
37-
const onlyMembers = await members.fetchUsersWithRole(ROLES.MEMBER);
35+
const onlyMembers = await dataAccess.retrieveUsersWithRole(ROLES.MEMBER);
3836
const taskParticipants = await tasks.fetchActiveTaskMembers();
3937
const idleMembers = onlyMembers?.filter(({ id }) => !taskParticipants.has(id));
4038
const idleMemberUserNames = idleMembers?.map((member) => member.username);
@@ -59,7 +57,7 @@ const getIdleMembers = async (req, res) => {
5957
const moveToMembers = async (req, res) => {
6058
try {
6159
const { username } = req.params;
62-
const result = await fetchUser({ username });
60+
const result = await dataAccess.retrieveUsers({ username });
6361
if (result.userExists) {
6462
const successObject = await members.moveToMembers(result.user.id);
6563
if (successObject.isAlreadyMember) {
@@ -84,7 +82,7 @@ const moveToMembers = async (req, res) => {
8482
const archiveMembers = async (req, res) => {
8583
try {
8684
const { username } = req.params;
87-
const user = await fetchUser({ username });
85+
const user = await dataAccess.retrieveUsers({ username });
8886
if (user?.userExists) {
8987
const successObject = await members.addArchiveRoleToMembers(user.user.id);
9088
if (successObject.isArchived) {

controllers/tasks.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ const { OLD_ACTIVE, OLD_BLOCKED, OLD_PENDING } = TASK_STATUS_OLD;
77
const { IN_PROGRESS, BLOCKED, SMOKE_TESTING, ASSIGNED } = TASK_STATUS;
88
const { INTERNAL_SERVER_ERROR, SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
99
const dependencyModel = require("../models/tasks");
10-
const userQuery = require("../models/users");
1110
const { transformQuery } = require("../utils/tasks");
1211
const { getPaginatedLink } = require("../utils/helper");
1312
const { updateUserStatusOnTaskUpdate, updateStatusOnTaskCompletion } = require("../models/userStatus");
14-
13+
const dataAccess = require("../services/dataAccessLayer");
1514
/**
1615
* Creates new task
1716
*
@@ -250,7 +249,7 @@ const updateTask = async (req, res) => {
250249
return res.boom.notFound("Task not found");
251250
}
252251
if (req.body?.assignee) {
253-
const user = await userQuery.fetchUser({ username: req.body.assignee });
252+
const user = await dataAccess.retrieveUsers({ username: req.body.assignee });
254253
if (!user.userExists) {
255254
return res.boom.notFound("User doesn't exist");
256255
}

controllers/userStatus.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const { Forbidden, NotFound } = require("http-errors");
2-
const { fetchUser } = require("../models/users");
3-
const userStatusModel = require("../models/userStatus");
42
const { getUserIdBasedOnRoute } = require("../utils/userStatus");
53
const { INTERNAL_SERVER_ERROR } = require("../constants/errorMessages");
4+
const dataAccess = require("../services/dataAccessLayer");
5+
const userStatusModel = require("../models/userStatus");
66
const { userState, CANCEL_OOO } = require("../constants/userStatus");
77

88
/**
@@ -76,7 +76,7 @@ const getAllUserStatus = async (req, res) => {
7676
const activeUsers = [];
7777
for (const status of allUserStatus) {
7878
// fetching users from users collection by userID in userStatus collection
79-
const result = await fetchUser({ userId: status.userId });
79+
const result = await dataAccess.retrieveUsers({ id: status.userId });
8080
if (!result.user?.roles?.archived) {
8181
status.full_name = `${result.user.first_name} ${result.user.last_name}`;
8282
status.picture = result.user.picture;

controllers/users.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ const getUser = async (req, res) => {
126126
try {
127127
const result = await dataAccess.retrieveUsers({ username: req.params.username });
128128
const user = result.user;
129-
130129
if (result.userExists) {
131130
return res.json({
132131
message: "User returned successfully!",
@@ -230,7 +229,7 @@ const updateSelf = async (req, res) => {
230229
try {
231230
const { id: userId } = req.userData;
232231
if (req.body.username) {
233-
const { user } = await userQuery.fetchUser({ userId });
232+
const { user } = await dataAccess.retrieveUsers({ id: userId });
234233
if (!user.incompleteUserDetails) {
235234
return res.boom.forbidden("Cannot update username again");
236235
}
@@ -379,7 +378,7 @@ const updateUser = async (req, res) => {
379378

380379
const { approval, timestamp, userId, ...profileDiff } = profileDiffData;
381380

382-
const user = await userQuery.fetchUser({ userId });
381+
const user = await dataAccess.retrieveUsers({ id: userId });
383382
if (!user.userExists) return res.boom.notFound("User doesn't exist");
384383

385384
await profileDiffsQuery.updateProfileDiff({ approval: profileDiffStatus.APPROVED }, profileDiffId);
@@ -568,7 +567,7 @@ const filterUsers = async (req, res) => {
568567
};
569568

570569
const nonVerifiedDiscordUsers = async (req, res) => {
571-
const data = await userQuery.getDiscordUsers();
570+
const data = await dataAccess.retrieveDiscordUsers();
572571
return res.json(data);
573572
};
574573

@@ -602,7 +601,7 @@ const removeTokens = async (req, res) => {
602601

603602
const updateRoles = async (req, res) => {
604603
try {
605-
const result = await userQuery.fetchUser({ userId: req.params.id });
604+
const result = await dataAccess.retrieveUsers({ id: req.params.id });
606605
if (result?.userExists) {
607606
const dataToUpdate = req.body;
608607
const response = await getRoleToUpdate(result.user, dataToUpdate);

middlewares/taskRequests.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
const { SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
22
const { userState } = require("../constants/userStatus");
3-
const userModel = require("../models/users.js");
43
const userStatusModel = require("../models/userStatus.js");
5-
4+
const dataAccess = require("../services/dataAccessLayer");
65
/**
76
* Validates user id for task request
87
*
@@ -16,7 +15,7 @@ async function validateUser(req, res, next) {
1615
return res.boom.badRequest("userId not provided");
1716
}
1817

19-
const { userExists, user } = await userModel.fetchUser({ userId });
18+
const { userExists, user } = await dataAccess.retrieveUsers({ id: userId });
2019
if (!userExists) {
2120
return res.boom.conflict("User does not exist");
2221
}

models/members.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ const fetchUsers = async (queryParams = {}) => {
2727
const curatedMemberData = {
2828
id: doc.id,
2929
...memberData,
30-
tokens: undefined,
31-
phone: undefined,
32-
email: undefined,
3330
};
3431
curatedMemberData.isMember = !!(memberData.roles && memberData.roles.member);
3532
allMembers.push(curatedMemberData);
@@ -80,9 +77,6 @@ const fetchUsersWithRole = async (role) => {
8077
onlyMembers.push({
8178
id: doc.id,
8279
...doc.data(),
83-
phone: undefined,
84-
email: undefined,
85-
tokens: undefined,
8680
});
8781
});
8882
}

0 commit comments

Comments
 (0)