Skip to content

Commit 4a6ccb3

Browse files
refactor: improve error handling and type safety in oooRequests
- Updated acknowledgeOooRequestController to remove unnecessary return statement. - Enhanced acknowledgeOooRequestValidator to streamline Joi validation error handling. - Improved type assertions in updateRequestValidator for better clarity and type safety. - Refined transformRequestResponse logic to simplify request transformation based on environment conditions.
1 parent ac47140 commit 4a6ccb3

File tree

5 files changed

+17
-18
lines changed

5 files changed

+17
-18
lines changed

controllers/oooRequests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,6 @@ export const acknowledgeOooRequestController = async (
180180
catch(error){
181181
logger.error(ERROR_WHILE_ACKNOWLEDGING_REQUEST, error);
182182
next(error);
183-
return res;
183+
return;
184184
}
185185
};

middlewares/validators/oooRequests.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,15 @@ export const acknowledgeOooRequestValidator = async (
8888
await paramsSchema.validateAsync(req.params, { abortEarly: false });
8989
return next();
9090
} catch (error: unknown) {
91-
const isJoiValidationError = (err: unknown): err is joi.ValidationError => {
92-
return Boolean(err) && typeof (err as any).isJoi === "boolean" && (err as any).isJoi === true && Array.isArray((err as any).details);
93-
};
9491

95-
if (isJoiValidationError(error)) {
92+
if (error instanceof joi.ValidationError) {
9693
const errorMessages = error.details.map((detail) => detail.message);
9794
logger.error(`${ERROR_WHILE_ACKNOWLEDGING_REQUEST}: ${errorMessages}`);
9895
return res.boom.badRequest(errorMessages);
9996
}
100-
const genericMessage = typeof (error as any)?.message === "string" ? (error as any).message : String(error);
101-
logger.error(`${ERROR_WHILE_ACKNOWLEDGING_REQUEST}: ${genericMessage}`);
97+
98+
const errorMessage = error instanceof Error ? error.message : String(error);
99+
logger.error(`${ERROR_WHILE_ACKNOWLEDGING_REQUEST}: ${errorMessage}`);
102100
return res.boom.badRequest([ERROR_WHILE_ACKNOWLEDGING_REQUEST]);
103101
}
104102
};

middlewares/validators/requests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export const updateRequestValidator = async (
147147
res as OnboardingExtensionResponse, next);
148148
break;
149149
case REQUEST_TYPE.OOO:
150-
await acknowledgeOooRequestValidator(req, res as OooRequestResponse, next);
150+
await acknowledgeOooRequestValidator(req as AcknowledgeOooRequest, res as OooRequestResponse, next);
151151
break;
152152
default:
153153
return res.boom.badRequest("Invalid type");

services/oooRequest.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,10 @@ export const acknowledgeOooRequest = async (
153153
throw new NotFound("Request not found");
154154
}
155155

156-
const { type, status, from, until, requestedBy } = requestData as OooStatusRequest;
157-
158-
await validateOooAcknowledgeRequest(type, status);
156+
const { type, from, until, requestedBy } = requestData;
157+
const status = 'status' in requestData ? requestData.status : (requestData as oldOooStatusRequest).state;
158+
await validateOooAcknowledgeRequest(type, status);
159+
159160

160161
const requestResult = await updateRequest(requestId, body, superUserId, REQUEST_TYPE.OOO);
161162
if (requestResult.error) {

utils/requests.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ export const transformRequestResponse = (allRequests: (OooStatusRequest | oldOoo
7575
return request;
7676
}
7777

78-
if (dev) {
79-
return 'status' in request
80-
? oldOOOSchema(request as OooStatusRequest)
81-
: request;
78+
if (dev && 'status' in request) {
79+
return oldOOOSchema(request as OooStatusRequest);
80+
}
81+
82+
if (!dev && 'state' in request) {
83+
return newOOOSchema(request as oldOooStatusRequest);
8284
}
8385

84-
return 'state' in request
85-
? newOOOSchema(request as oldOooStatusRequest)
86-
: request;
86+
return request;
8787
});
8888
};

0 commit comments

Comments
 (0)