aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/animeCategory.controller.ts
diff options
context:
space:
mode:
authorRitesh Ghosh <[email protected]>2023-08-07 14:58:25 +0530
committerRitesh Ghosh <[email protected]>2023-08-07 14:58:25 +0530
commit84a79810c358dece1b3bd2b013a2d788ec100f44 (patch)
treed6c52e37abc4a76a7da2e32a7ae7622ad22f11bd /src/controllers/animeCategory.controller.ts
parent205619be557a7e1ac6152f370f440005feea0050 (diff)
downloadaniwatch-api-84a79810c358dece1b3bd2b013a2d788ec100f44.tar.xz
aniwatch-api-84a79810c358dece1b3bd2b013a2d788ec100f44.zip
feat(controllerTypes): added request handler types
Diffstat (limited to 'src/controllers/animeCategory.controller.ts')
-rw-r--r--src/controllers/animeCategory.controller.ts35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/controllers/animeCategory.controller.ts b/src/controllers/animeCategory.controller.ts
index ba44127..b6c83cc 100644
--- a/src/controllers/animeCategory.controller.ts
+++ b/src/controllers/animeCategory.controller.ts
@@ -1,30 +1,37 @@
-import { scrapeAnimeCategory } from "../parsers";
import createHttpError from "http-errors";
-import { AnimeCategories } from "../models";
-import { Request, Response, NextFunction, Handler } from "express";
+import { RequestHandler } from "express";
+import { AnimeCategories } from "../models/anime";
+import { scrapeAnimeCategory } from "../parsers";
+import {
+ CategoryAnimePathParams,
+ CategoryAnimeQueryParams,
+} from "../models/controllers";
// /anime/:category?page=${page}
-const getAnimeCategory: Handler = async (
- req: Request,
- res: Response,
- next: NextFunction
-) => {
+const getAnimeCategory: RequestHandler<
+ CategoryAnimePathParams,
+ Awaited<ReturnType<typeof scrapeAnimeCategory>>,
+ unknown,
+ CategoryAnimeQueryParams
+> = async (req, res, next) => {
try {
- const category: AnimeCategories = decodeURIComponent(
- req.params.category
- ) as AnimeCategories;
+ const category = req.params.category
+ ? decodeURIComponent(req.params.category)
+ : null;
const page: number = req.query.page
? Number(decodeURIComponent(req.query?.page as string))
: 1;
- if (!category) throw createHttpError.BadRequest("category required");
+ if (category === null) {
+ throw createHttpError.BadRequest("category required");
+ }
- const data = await scrapeAnimeCategory(category, page);
+ const data = await scrapeAnimeCategory(category as AnimeCategories, page);
res.status(200).json(data);
} catch (err: any) {
- // console.error(err);
+ console.error(err);
next(err);
}
};