From c3cb2189753aa74b8fc5c554577deeed89971dc6 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 19 Dec 2022 15:57:36 +0900 Subject: [PATCH] fix(backend): request.body may be undefined (#9356) --- packages/backend/src/server/api/ApiCallService.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts index 8cc7382c5..9d45a49c0 100644 --- a/packages/backend/src/server/api/ApiCallService.ts +++ b/packages/backend/src/server/api/ApiCallService.ts @@ -54,21 +54,21 @@ export class ApiCallService implements OnApplicationShutdown { @bindThis public handleRequest( endpoint: IEndpoint & { exec: any }, - request: FastifyRequest<{ Body: Record, Querystring: Record }>, + request: FastifyRequest<{ Body: Record | undefined, Querystring: Record }>, reply: FastifyReply, ) { const body = request.method === 'GET' ? request.query : request.body; - const token = body['i']; + const token = body?.['i']; if (token != null && typeof token !== 'string') { reply.code(400); return; } this.authenticateService.authenticate(token).then(([user, app]) => { this.call(endpoint, user, app, body, null, request).then((res) => { - if (request.method === 'GET' && endpoint.meta.cacheSec && !body['i'] && !user) { + if (request.method === 'GET' && endpoint.meta.cacheSec && !body?.['i'] && !user) { reply.header('Cache-Control', `public, max-age=${endpoint.meta.cacheSec}`); } this.send(reply, res); @@ -111,7 +111,7 @@ export class ApiCallService implements OnApplicationShutdown { for (const [k, v] of Object.entries(multipartData.fields)) { fields[k] = v.value; } - + const token = fields['i']; if (token != null && typeof token !== 'string') { reply.code(400); @@ -199,7 +199,7 @@ export class ApiCallService implements OnApplicationShutdown { name: string; path: string; } | null, - request: FastifyRequest<{ Body: Record, Querystring: Record }>, + request: FastifyRequest<{ Body: Record | undefined, Querystring: Record }>, ) { const isSecure = user != null && token == null; const isModerator = user != null && (user.isModerator || user.isAdmin);