aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRitesh Ghosh <[email protected]>2023-08-04 00:04:01 +0530
committerRitesh Ghosh <[email protected]>2023-08-04 00:04:01 +0530
commitb86a3703818f495c03bd714504c1056456c1e405 (patch)
tree948cbd3fe4928432d5d0d6e77308554fc305d3ca /src
parente849c870a0ad018f7fd10ba9835c0d98d7546fd2 (diff)
downloadaniwatch-api-b86a3703818f495c03bd714504c1056456c1e405.tar.xz
aniwatch-api-b86a3703818f495c03bd714504c1056456c1e405.zip
feat(newController): added `animeGenre` controller
Diffstat (limited to 'src')
-rw-r--r--src/controllers/animeGenre.controller.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/controllers/animeGenre.controller.ts b/src/controllers/animeGenre.controller.ts
new file mode 100644
index 0000000..4abc981
--- /dev/null
+++ b/src/controllers/animeGenre.controller.ts
@@ -0,0 +1,32 @@
+import { scrapeGenreAnime } from "../parsers";
+import createHttpError from "http-errors";
+import { Request, Response, NextFunction, Handler } from "express";
+
+// /anime/genre/:${genreName}?page=${page}
+const getGenreAnime: Handler = async (
+ req: Request,
+ res: Response,
+ next: NextFunction
+) => {
+ try {
+ const name: string | null = req.params.name
+ ? decodeURIComponent(req.params.name as string)
+ : null;
+
+ const page: number = req.query.page
+ ? Number(decodeURIComponent(req.query?.page as string))
+ : 1;
+
+ if (name === null) {
+ throw createHttpError.BadRequest("Anime genre required");
+ }
+
+ const data = await scrapeGenreAnime(name, page);
+ res.status(200).json(data);
+ } catch (err: any) {
+ console.error(err);
+ next(err);
+ }
+};
+
+export default getGenreAnime;