From e9e896173025b1f4662c071482ffa498e43903de Mon Sep 17 00:00:00 2001 From: Florian Sylvain Date: Mon, 6 Mar 2023 13:45:51 +0100 Subject: [PATCH] Paintings refactor --- src/routers/paintings.ts | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/routers/paintings.ts b/src/routers/paintings.ts index a99f9f4..6e4dd17 100644 --- a/src/routers/paintings.ts +++ b/src/routers/paintings.ts @@ -35,6 +35,23 @@ async function fetchPainting(uuid: string): Promise { }) } +async function getRandomUUIDs(limit: number): Promise { + const paintingsUUIDs = JSON.parse( + fs.readFileSync("src/assets/paintingsUUID.json", "utf8") + ) + const randomUUIDs = paintingsUUIDs.paintings + .sort(() => Math.random() - 0.5) + .slice(0, limit) + + const paintings = [] + for (const uuid of randomUUIDs) { + const painting = await fetchPainting(uuid) + paintings.push(painting) + } + + return paintings +} + const paintingRouterGet: RequestHandler = async (req, res) => { const parsedPainting = paintingParser.safeParse(req.params) if (!parsedPainting.success) { @@ -56,20 +73,9 @@ const paintingRouterGetRandoms: RequestHandler = async (req, res) => { return } - const paintingsUUIDs = JSON.parse( - fs.readFileSync("src/assets/paintingsUUID.json", "utf8") - ) - const randomUUIDs = paintingsUUIDs.paintings - .sort(() => Math.random() - 0.5) - .slice(0, parsedPainting.data.limit) - - const paintings = [] - for (const uuid of randomUUIDs) { - const painting = await fetchPainting(uuid) - paintings.push(painting) - } - - res.send({ paintings }) + res.send({ + paintings: await getRandomUUIDs(parsedPainting.data.limit), + }) } paintingsRouter.get("/:uuid", paintingRouterGet)