diff --git a/pages/api/generate.ts b/pages/api/generate.ts index 25d97d2..0597c39 100644 --- a/pages/api/generate.ts +++ b/pages/api/generate.ts @@ -10,6 +10,10 @@ interface ExtendedNextApiRequest extends NextApiRequest { }; } +interface EndPointSuccess { + pass: string | number | null; + fail: string | number | null; +} // Create a new ratelimiter, that allows 3 requests per 60 seconds const ratelimit = redis ? new Ratelimit({ @@ -18,6 +22,14 @@ const ratelimit = redis }) : undefined; +function endpointResponse(restoredImage: string | null , endpointSuccess: EndPointSuccess) { + const {pass, fail} = endpointSuccess; + if (restoredImage) { + return pass as ResponseType; + } + return fail as ResponseType; +} + export default async function handler( req: ExtendedNextApiRequest, res: NextApiResponse @@ -79,7 +91,9 @@ export default async function handler( await new Promise((resolve) => setTimeout(resolve, 1000)); } } + const status = endpointResponse(restoredImage, {pass: 200, fail: 500}); + const json = endpointResponse(restoredImage, {pass: restoredImage, fail: "Failed to restore image"}); res - .status(200) - .json(restoredImage ? restoredImage : "Failed to restore image"); + .status(status) + .json(json); }