Skip to content

Commit 32ebdc3

Browse files
Merge pull request #2283 from Real-Dev-Squad/develop
Dev to Main Sync
2 parents 12f3acc + 70cfd78 commit 32ebdc3

38 files changed

+1366
-139
lines changed

constants/logs.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ export const logType = {
1010
TASKS_MISSED_UPDATES_ERRORS: "TASKS_MISSED_UPDATES_ERRORS",
1111
DISCORD_INVITES: "DISCORD_INVITES",
1212
EXTERNAL_SERVICE: "EXTERNAL_SERVICE",
13+
ADD_UNVERIFIED_ROLE: "ADD_UNVERIFIED_ROLE",
14+
REMOVE_ROLE_FROM_USER_SUCCESS: "REMOVE_ROLE_FROM_USER_SUCCESS",
15+
REMOVE_ROLE_FROM_USER_FAILED: "REMOVE_ROLE_FROM_USER_FAILED",
1316
EXTENSION_REQUESTS: "extensionRequests",
1417
TASK: "task",
1518
TASK_REQUESTS: "taskRequests",

controllers/awsAccess.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ export const addUserToAWSGroup = async (req, res) => {
2121
if (awsUserId === null){
2222
// We need to create the user in AWS before and then fetch its Id
2323
userCreationResponse = await createUser(userInfoData.user.username, userInfoData.user.email);
24+
25+
if (userCreationResponse.conflict){
26+
return res.status(400).json({
27+
error: `Username or Email is already being used, please use another email / username for creating account in AWS`
28+
})
29+
}
2430
awsUserId = userCreationResponse.UserId;
2531
}
2632

controllers/extensionRequests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const createTaskExtensionRequest = async (req, res) => {
7474
type: "extensionRequests",
7575
meta: {
7676
taskId: extensionBody.taskId,
77-
createdBy: req.userData.id,
77+
userId: req.userData.id,
7878
},
7979
body: {
8080
extensionRequestId: extensionRequest.id,

controllers/extensionRequestsv2.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export const createTaskExtensionRequest = async (req: ExtensionRequestRequest, r
8484
taskId,
8585
requestId: extensionRequest.id,
8686
action: LOG_ACTION.CREATE,
87-
createdBy: requestedBy,
87+
userId: requestedBy,
8888
createdAt: Date.now(),
8989
},
9090
body: extensionBody,

controllers/external-accounts.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const { getDiscordMembers } = require("../services/discordService");
44
const { addOrUpdate, getUsersByRole, updateUsersInBatch } = require("../models/users");
55
const { retrieveDiscordUsers, fetchUsersForKeyValues } = require("../services/dataAccessLayer");
66
const { EXTERNAL_ACCOUNTS_POST_ACTIONS } = require("../constants/external-accounts");
7-
const discordServices = require("../services/discordService");
7+
const removeDiscordRoleUtils = require("../utils/removeDiscordRoleFromUser");
88
const config = require("config");
99
const logger = require("../utils/logger");
1010
const { markUnDoneTasksOfArchivedUsersBacklog } = require("../models/tasks");
@@ -71,14 +71,16 @@ const linkExternalAccount = async (req, res) => {
7171
userId
7272
);
7373

74-
try {
75-
const unverifiedRoleId = config.get("discordUnverifiedRoleId");
76-
await discordServices.removeRoleFromUser(unverifiedRoleId, attributes.discordId, req.userData);
77-
} catch (error) {
78-
logger.error(`Error getting external account data: ${error}`);
79-
return res.boom.internal("Role Deletion failed. Please contact admin.", {
80-
message: "Role Deletion failed. Please contact admin.",
81-
});
74+
const unverifiedRoleId = config.get("discordUnverifiedRoleId");
75+
const unverifiedRoleRemovalResponse = await removeDiscordRoleUtils.removeDiscordRoleFromUser(
76+
req.userData,
77+
attributes.discordId,
78+
unverifiedRoleId
79+
);
80+
81+
if (!unverifiedRoleRemovalResponse.success) {
82+
const message = `User details updated but ${unverifiedRoleRemovalResponse.message}. Please contact admin`;
83+
return res.boom.internal(message, { message });
8284
}
8385

8486
return res.status(204).json({ message: "Your discord profile has been linked successfully" });

controllers/invites.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const createInviteLink = async (req: InviteBodyRequest, res: CustomRespon
3232
type: logType.DISCORD_INVITES,
3333
meta: {
3434
action: "create",
35-
createdBy: logType.EXTERNAL_SERVICE,
35+
userId: logType.EXTERNAL_SERVICE,
3636
createdAt: Date.now(),
3737
},
3838
body: {

controllers/logs.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,27 @@ const fetchAllLogs = async (req, res) => {
6767
prev: prevUrl,
6868
});
6969
} catch (err) {
70+
if (err.statusCode) {
71+
return res.status(err.statusCode).json({ error: err.message });
72+
}
7073
logger.error(ERROR_WHILE_FETCHING_LOGS, err);
7174
return res.boom.badImplementation(ERROR_WHILE_FETCHING_LOGS);
7275
}
7376
};
7477

78+
const updateLogs = async (req, res) => {
79+
try {
80+
const response = await logsQuery.updateLogs();
81+
return res.json({
82+
response,
83+
});
84+
} catch (error) {
85+
return res.boom.serverUnavailable(SOMETHING_WENT_WRONG);
86+
}
87+
};
88+
7589
module.exports = {
7690
fetchLogs,
7791
fetchAllLogs,
92+
updateLogs,
7893
};

controllers/oooRequests.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const createOooRequestController = async (req: OooRequestCreateRequest, r
4141
meta: {
4242
requestId: requestResult.id,
4343
action: LOG_ACTION.CREATE,
44-
createdBy: userId,
44+
userId: userId,
4545
createdAt: Date.now(),
4646
},
4747
body: requestResult,
@@ -84,7 +84,7 @@ export const updateOooRequestController = async (req: UpdateRequest, res: Custom
8484
meta: {
8585
requestId: requestId,
8686
action: LOG_ACTION.UPDATE,
87-
createdBy: userId,
87+
userId: userId,
8888
createdAt: Date.now(),
8989
},
9090
body: requestResult,

controllers/taskRequestsv2.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export const createTaskRequestController = async (req: TaskRequestRequest, res:
9292
meta: {
9393
taskRequestId: updatedRequest.id,
9494
action: "update",
95-
createdBy: req.userData.id,
95+
userId: req.userData.id,
9696
createdAt: Date.now(),
9797
lastModifiedBy: req.userData.id,
9898
lastModifiedAt: Date.now(),
@@ -150,7 +150,7 @@ export const createTaskRequestController = async (req: TaskRequestRequest, res:
150150
meta: {
151151
taskRequestId: newTaskRequest.id,
152152
action: "create",
153-
createdBy: req.userData.id,
153+
userId: req.userData.id,
154154
createdAt: Date.now(),
155155
lastModifiedBy: req.userData.id,
156156
lastModifiedAt: Date.now(),

controllers/tasks.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const { updateUserStatusOnTaskUpdate, updateStatusOnTaskCompletion } = require("
1313
const dataAccess = require("../services/dataAccessLayer");
1414
const { parseSearchQuery } = require("../utils/tasks");
1515
const { addTaskCreatedAtAndUpdatedAtFields } = require("../services/tasks");
16+
const tasksService = require("../services/tasks");
1617
const { RQLQueryParser } = require("../utils/RQLParser");
1718
const { getMissedProgressUpdatesUsers } = require("../models/discordactions");
1819
const { logType } = require("../constants/logs");
@@ -134,7 +135,19 @@ const fetchPaginatedTasks = async (query) => {
134135

135136
const fetchTasks = async (req, res) => {
136137
try {
137-
const { status, page, size, prev, next, q: queryString, assignee, title, userFeatureFlag } = req.query;
138+
const {
139+
status,
140+
page,
141+
size,
142+
prev,
143+
next,
144+
q: queryString,
145+
assignee,
146+
title,
147+
userFeatureFlag,
148+
orphaned,
149+
dev,
150+
} = req.query;
138151
const transformedQuery = transformQuery(status, size, page, assignee, title);
139152

140153
if (queryString !== undefined) {
@@ -159,6 +172,28 @@ const fetchTasks = async (req, res) => {
159172
});
160173
}
161174

175+
const isOrphaned = orphaned === "true";
176+
const isDev = dev === "true";
177+
if (isOrphaned) {
178+
if (!isDev) {
179+
return res.boom.notFound("Route not found");
180+
}
181+
try {
182+
const orphanedTasks = await tasksService.fetchOrphanedTasks();
183+
if (!orphanedTasks || orphanedTasks.length === 0) {
184+
return res.sendStatus(204);
185+
}
186+
const tasksWithRdsAssigneeInfo = await fetchTasksWithRdsAssigneeInfo(orphanedTasks);
187+
return res.status(200).json({
188+
message: "Orphan tasks fetched successfully",
189+
data: tasksWithRdsAssigneeInfo,
190+
});
191+
} catch (error) {
192+
logger.error("Error in getting tasks which were orphaned", error);
193+
return res.boom.badImplementation(INTERNAL_SERVER_ERROR);
194+
}
195+
}
196+
162197
const paginatedTasks = await fetchPaginatedTasks({ ...transformedQuery, prev, next, userFeatureFlag });
163198
return res.json({
164199
message: "Tasks returned successfully!",

0 commit comments

Comments
 (0)