Skip to content

Commit a19b0b3

Browse files
authored
chore: remove feature flag for GET /extension-requests/self API (#2152)
1 parent a6814b6 commit a19b0b3

File tree

4 files changed

+97
-241
lines changed

4 files changed

+97
-241
lines changed

controllers/extensionRequests.js

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -145,64 +145,49 @@ const getExtensionRequest = async (req, res) => {
145145
* @param res {Object} - Express response object
146146
*/
147147
const getSelfExtensionRequests = async (req, res) => {
148-
const dev = req.query.dev === "true";
149-
150148
try {
151149
const { id: userId } = req.userData;
152150
const { taskId, status } = req.query;
153151

154-
if (dev) {
155-
if (userId) {
156-
let allExtensionRequests;
157-
if (taskId) {
158-
const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({
159-
taskId,
160-
});
161-
162-
if (latestExtensionRequest && latestExtensionRequest.assigneeId !== userId) {
163-
allExtensionRequests = [];
164-
} else {
165-
// Add reviewer's name if status is not PENDING
166-
if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") {
167-
const logs = await logsQuery.fetchLogs(
168-
{ "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 },
169-
"extensionRequests"
170-
);
152+
if (userId) {
153+
let allExtensionRequests;
154+
if (taskId) {
155+
const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({
156+
taskId,
157+
});
171158

172-
if (
173-
logs.length === 1 &&
174-
logs[0]?.meta?.userId &&
175-
(logs[0]?.body?.status === "APPROVED" || logs[0]?.body?.status === "DENIED") // Make sure log is only related to status change
176-
) {
177-
const superUserId = logs[0].meta.userId;
178-
const name = await getFullName(superUserId);
179-
latestExtensionRequest.reviewedBy = `${name?.first_name} ${name?.last_name}`;
180-
latestExtensionRequest.reviewedAt = logs[0].timestamp._seconds;
181-
}
159+
if (latestExtensionRequest && latestExtensionRequest.assigneeId !== userId) {
160+
allExtensionRequests = [];
161+
} else {
162+
// Add reviewer's name if status is not PENDING
163+
if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") {
164+
const logs = await logsQuery.fetchLogs(
165+
{ "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 },
166+
"extensionRequests"
167+
);
168+
169+
if (
170+
logs.length === 1 &&
171+
logs[0]?.meta?.userId &&
172+
(logs[0]?.body?.status === "APPROVED" || logs[0]?.body?.status === "DENIED") // Make sure log is only related to status change
173+
) {
174+
const superUserId = logs[0].meta.userId;
175+
const name = await getFullName(superUserId);
176+
latestExtensionRequest.reviewedBy = `${name?.first_name} ${name?.last_name}`;
177+
latestExtensionRequest.reviewedAt = logs[0].timestamp._seconds;
182178
}
183-
allExtensionRequests = [latestExtensionRequest];
184179
}
185-
} else {
186-
allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({
187-
assignee: userId,
188-
status: status || undefined,
189-
});
180+
allExtensionRequests = [latestExtensionRequest];
190181
}
191-
return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests });
192182
} else {
193-
return res.boom.notFound("User doesn't exist");
194-
}
195-
} else {
196-
if (userId) {
197-
const allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({
198-
taskId,
183+
allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({
199184
assignee: userId,
200185
status: status || undefined,
201186
});
202-
return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests });
203-
} else {
204-
return res.boom.notFound("User doesn't exist");
205187
}
188+
return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests });
189+
} else {
190+
return res.boom.notFound("User doesn't exist");
206191
}
207192
} catch (error) {
208193
logger.error(`Error while fetching extension requests: ${error}`);

test/fixtures/tasks/multiple-extension-requests-tasks.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

test/integration/extensionRequests.test.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe("Extension Requests", function () {
3232
taskId4,
3333
taskId5,
3434
taskId6,
35+
taskId7,
3536
extensionRequestId1,
3637
extensionRequestId2,
3738
extensionRequestId3,
@@ -141,6 +142,22 @@ describe("Extension Requests", function () {
141142
completionAward: { [DINERO]: 3, [NEELAM]: 300 },
142143
lossRate: { [DINERO]: 1 },
143144
},
145+
{
146+
title: "Test task 5",
147+
purpose: "To Test mocha",
148+
featureUrl: "<testUrl>",
149+
type: "group",
150+
links: ["test1"],
151+
endsOn: 1234,
152+
startedOn: 54321,
153+
status: "active",
154+
percentCompleted: 10,
155+
dependsOn: ["d12", "d23"],
156+
isNoteworthy: false,
157+
assignee: appOwner.username,
158+
completionAward: { [DINERO]: 3, [NEELAM]: 300 },
159+
lossRate: { [DINERO]: 1 },
160+
},
144161
];
145162

146163
// Add the active task
@@ -155,6 +172,7 @@ describe("Extension Requests", function () {
155172
taskId4 = (await tasks.updateTask(taskData[4])).taskId;
156173
taskId5 = (await tasks.updateTask(taskData[5])).taskId;
157174
taskId6 = (await tasks.updateTask(taskData[6])).taskId;
175+
taskId7 = (await tasks.updateTask(taskData[7])).taskId;
158176

159177
const extensionRequest = {
160178
taskId: taskId3,
@@ -204,6 +222,16 @@ describe("Extension Requests", function () {
204222
reason: "family event",
205223
status: "PENDING",
206224
};
225+
const extensionRequest5 = {
226+
taskId: taskId7,
227+
title: "change ETA",
228+
assignee: user.id,
229+
oldEndsOn: 1234,
230+
newEndsOn: 1235,
231+
reason: "family event",
232+
status: "APPROVED",
233+
};
234+
207235
const extensionRequest6 = {
208236
taskId: taskId6,
209237
title: "change ETA",
@@ -218,6 +246,7 @@ describe("Extension Requests", function () {
218246
extensionRequestId3 = (await extensionRequests.createExtensionRequest(extensionRequest2)).id;
219247
extensionRequestId4 = (await extensionRequests.createExtensionRequest(extensionRequest3)).id;
220248
extensionRequestId5 = (await extensionRequests.createExtensionRequest(extensionRequest4)).id;
249+
await extensionRequests.createExtensionRequest(extensionRequest5);
221250
await extensionRequests.createExtensionRequest(extensionRequest6);
222251
});
223252

@@ -273,6 +302,44 @@ describe("Extension Requests", function () {
273302
});
274303
});
275304

305+
it("should return success response and an empty array of extensionRequest if assignee is not same as latest one", function (done) {
306+
chai
307+
.request(app)
308+
.get(`/extension-requests/self`)
309+
.query({ taskId: taskId7 })
310+
.set("cookie", `${cookieName}=${appOwnerjwt}`)
311+
.end((err, res) => {
312+
if (err) {
313+
return done(err);
314+
}
315+
316+
expect(res).to.have.status(200);
317+
expect(res.body).to.be.a("object");
318+
expect(res.body.message).to.be.equal("Extension Requests returned successfully!");
319+
expect(res.body.allExtensionRequests).to.be.a("array").with.lengthOf(0);
320+
return done();
321+
});
322+
});
323+
324+
it("should return success response and a single latestExtensionRequest if assignee same as latest one", function (done) {
325+
chai
326+
.request(app)
327+
.get(`/extension-requests/self`)
328+
.query({ taskId: taskId2 })
329+
.set("cookie", `${cookieName}=${appOwnerjwt}`)
330+
.end((err, res) => {
331+
if (err) {
332+
return done(err);
333+
}
334+
335+
expect(res).to.have.status(200);
336+
expect(res.body).to.be.a("object");
337+
expect(res.body.message).to.be.equal("Extension Requests returned successfully!");
338+
expect(res.body.allExtensionRequests).to.be.a("array").with.lengthOf(1);
339+
return done();
340+
});
341+
});
342+
276343
it("Should return 401 if not logged in", function (done) {
277344
chai
278345
.request(app)

0 commit comments

Comments
 (0)