From fd4227160c6824a846be8ec65364dcd6f6bd1685 Mon Sep 17 00:00:00 2001 From: mbret Date: Sat, 28 Sep 2024 00:20:32 +0200 Subject: [PATCH 1/2] fix: oupsie --- packages/api/src/functions/signin/handler.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/api/src/functions/signin/handler.ts b/packages/api/src/functions/signin/handler.ts index 044aa9e1..b49d2adc 100644 --- a/packages/api/src/functions/signin/handler.ts +++ b/packages/api/src/functions/signin/handler.ts @@ -13,6 +13,7 @@ import { generateToken } from "@libs/auth" import { ObokuErrorCode } from "@oboku/shared" import { createHttpError } from "@libs/httpErrors" import { getParametersValue } from "@libs/ssm" +import { withMiddy } from "@libs/middy/withMiddy" const firebaseConfig = JSON.parse( Buffer.from(process.env.FIREBASE_CONFIG ?? "", "base64").toString() ?? "{}" From ee23e4390326ac4baa24ad3b31a9b86fe7b66524 Mon Sep 17 00:00:00 2001 From: mbret Date: Sat, 28 Sep 2024 00:27:29 +0200 Subject: [PATCH 2/2] feat: cleanup --- .../libs/middy/unexpectedErrorToHttpError.ts | 22 +++++++++++++++++ packages/api/src/libs/middy/withMiddy.ts | 24 ++----------------- 2 files changed, 24 insertions(+), 22 deletions(-) create mode 100644 packages/api/src/libs/middy/unexpectedErrorToHttpError.ts diff --git a/packages/api/src/libs/middy/unexpectedErrorToHttpError.ts b/packages/api/src/libs/middy/unexpectedErrorToHttpError.ts new file mode 100644 index 00000000..f79c3d39 --- /dev/null +++ b/packages/api/src/libs/middy/unexpectedErrorToHttpError.ts @@ -0,0 +1,22 @@ +import { createHttpError } from "@libs/httpErrors" +import { MiddlewareObj } from "@middy/core" +import { ObokuErrorCode } from "@oboku/shared" + +export const unexpectedErrorToHttpError = (): MiddlewareObj => ({ + onError: async (request) => { + if (request.error) { + console.error("error received", request.error) + } + + if (request.error) { + request.error = createHttpError(500, { + code: ObokuErrorCode.UNKNOWN, + message: request.error.message + }) + + // eslint-disable-next-line no-extra-semi + ;(request.error as any).expose = + (request.error as any)?.expose ?? process.env.NODE_ENV === "development" + } + } +}) diff --git a/packages/api/src/libs/middy/withMiddy.ts b/packages/api/src/libs/middy/withMiddy.ts index 2df74dd6..d883a368 100644 --- a/packages/api/src/libs/middy/withMiddy.ts +++ b/packages/api/src/libs/middy/withMiddy.ts @@ -1,13 +1,11 @@ import middy from "@middy/core" -import { jsonSafeParse } from "@middy/util" import middyJsonBodyParser from "@middy/http-json-body-parser" import httpErrorHandler from "@middy/http-error-handler" import httpHeaderNormalizer from "@middy/http-header-normalizer" import cors from "@middy/http-cors" import { transpileSchema } from "@middy/validator/transpile" import validator from "@middy/validator" -import { createHttpError } from "@libs/httpErrors" -import { ObokuErrorCode } from "@oboku/shared" +import { unexpectedErrorToHttpError } from "./unexpectedErrorToHttpError" export const withMiddy = ( handler: any, @@ -68,25 +66,7 @@ export const withMiddy = ( fallbackMessage: `An error occurred` }) ) - .use({ - onError: async (request) => { - if (request.error) { - console.error("error received", request.error) - } - - if (request.error) { - request.error = createHttpError(500, { - code: ObokuErrorCode.UNKNOWN, - message: request.error.message - }) - - // eslint-disable-next-line no-extra-semi - ;(request.error as any).expose = - (request.error as any)?.expose ?? - process.env.NODE_ENV === "development" - } - } - }) + .use(unexpectedErrorToHttpError()) // @todo eventually protect the api and only allow a subset of origins .use( withCors