aboutsummaryrefslogtreecommitdiff
path: root/src/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'src/controllers')
-rw-r--r--src/controllers/animeCategory.controller.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/controllers/animeCategory.controller.ts b/src/controllers/animeCategory.controller.ts
new file mode 100644
index 0000000..ba44127
--- /dev/null
+++ b/src/controllers/animeCategory.controller.ts
@@ -0,0 +1,32 @@
+import { scrapeAnimeCategory } from "../parsers";
+import createHttpError from "http-errors";
+import { AnimeCategories } from "../models";
+import { Request, Response, NextFunction, Handler } from "express";
+
+// /anime/:category?page=${page}
+const getAnimeCategory: Handler = async (
+ req: Request,
+ res: Response,
+ next: NextFunction
+) => {
+ try {
+ const category: AnimeCategories = decodeURIComponent(
+ req.params.category
+ ) as AnimeCategories;
+
+ const page: number = req.query.page
+ ? Number(decodeURIComponent(req.query?.page as string))
+ : 1;
+
+ if (!category) throw createHttpError.BadRequest("category required");
+
+ const data = await scrapeAnimeCategory(category, page);
+
+ res.status(200).json(data);
+ } catch (err: any) {
+ // console.error(err);
+ next(err);
+ }
+};
+
+export default getAnimeCategory;