Skip to content

Commit a8a81f6

Browse files
committed
fix: OOO GET REQUEST DEV FLAG
1 parent cd928e2 commit a8a81f6

File tree

3 files changed

+86
-1
lines changed

3 files changed

+86
-1
lines changed

models/requests.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import firestore from "../utils/firestore";
22
const requestModel = firestore.collection("requests");
3-
import { REQUEST_ALREADY_APPROVED, REQUEST_ALREADY_REJECTED, REQUEST_STATE } from "../constants/requests";
3+
import { REQUEST_ALREADY_APPROVED, REQUEST_ALREADY_REJECTED, REQUEST_STATE, REQUEST_TYPE } from "../constants/requests";
44
import {
55
ERROR_WHILE_FETCHING_REQUEST,
66
ERROR_WHILE_CREATING_REQUEST,
77
ERROR_WHILE_UPDATING_REQUEST,
88
REQUEST_DOES_NOT_EXIST,
99
} from "../constants/requests";
1010
import { getUserId } from "../utils/users";
11+
import { transformGetOooRequest } from "../utils/requests";
1112
const SIZE = 5;
1213

1314
export const createRequest = async (body: any) => {
@@ -149,6 +150,10 @@ export const getRequests = async (query: any) => {
149150
return null;
150151
}
151152

153+
if (type === REQUEST_TYPE.OOO) {
154+
allRequests = await transformGetOooRequest(dev, allRequests);
155+
}
156+
152157
return {
153158
allRequests,
154159
prev: prevDoc.empty ? null : prevDoc.docs[0].id,

types/oooRequest.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@ export type OooStatusRequest = {
1818
updatedAt: Timestamp;
1919
comment: string | null;
2020
};
21+
22+
export type OldOooRequest = {
23+
id: string;
24+
type: REQUEST_TYPE.OOO;
25+
from: number;
26+
until: number;
27+
message: string;
28+
state: REQUEST_STATE;
29+
lastModifiedBy: string | null;
30+
requestedBy: string;
31+
reason: string | null;
32+
createdAt: Timestamp;
33+
updatedAt: Timestamp;
34+
};
35+
2136
export type OooStatusRequestBody = {
2237
from: number;
2338
until: number;

utils/requests.ts

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
import { ERROR_WHILE_FETCHING_REQUEST } from "../constants/requests";
2+
import { fetchUser } from "../models/users";
3+
import { userData } from "../types/global";
4+
import { OldOooRequest, OooStatusRequest } from "../types/oooRequest";
5+
16
/**
27
* Calculates the new deadline based on the current date, the old end date, and the additional duration in milliseconds.
38
*
@@ -31,4 +36,64 @@ export const convertDateStringToMilliseconds = (date: string): { isDate: boolean
3136
isDate: true,
3237
milliseconds,
3338
};
39+
};
40+
41+
export const transformGetOooRequest = async (dev, allRequests) => {
42+
const oooRequests = [];
43+
44+
if (dev) {
45+
for (const request of allRequests) {
46+
if (request.status) {
47+
const modifiedRequest: OldOooRequest = {
48+
id: request.id,
49+
type: request.type,
50+
from: request.from,
51+
until: request.until,
52+
message: request.reason,
53+
state: request.status,
54+
lastModifiedBy: request.lastModifiedBy ?? "",
55+
requestedBy: request.userId,
56+
reason: request.comment ?? "",
57+
createdAt: request.createdAt,
58+
updatedAt: request.updatedAt
59+
};
60+
oooRequests.push(modifiedRequest);
61+
} else {
62+
oooRequests.push(request);
63+
}
64+
}
65+
} else {
66+
for (const request of allRequests) {
67+
if (request.state) {
68+
try {
69+
const userResponse: any = await fetchUser({ userId: request.requestedBy });
70+
const username = userResponse.user.username;
71+
72+
const modifiedRequest: OooStatusRequest = {
73+
id: request.id,
74+
type: request.type,
75+
from: request.from,
76+
until: request.until,
77+
reason: request.message,
78+
status: request.state,
79+
lastModifiedBy: request.lastModifiedBy ?? null,
80+
requestedBy: username,
81+
comment: request.reason ?? null,
82+
createdAt: request.createdAt,
83+
updatedAt: request.updatedAt,
84+
userId: request.requestedBy
85+
};
86+
87+
oooRequests.push(modifiedRequest);
88+
} catch (error) {
89+
logger.error(ERROR_WHILE_FETCHING_REQUEST, error);
90+
throw error;
91+
}
92+
} else {
93+
oooRequests.push(request);
94+
}
95+
}
96+
}
97+
98+
return oooRequests;
3499
};

0 commit comments

Comments
 (0)