diff options
| author | Ritesh Ghosh <[email protected]> | 2023-08-04 00:04:01 +0530 |
|---|---|---|
| committer | Ritesh Ghosh <[email protected]> | 2023-08-04 00:04:01 +0530 |
| commit | b86a3703818f495c03bd714504c1056456c1e405 (patch) | |
| tree | 948cbd3fe4928432d5d0d6e77308554fc305d3ca /src/controllers | |
| parent | e849c870a0ad018f7fd10ba9835c0d98d7546fd2 (diff) | |
| download | aniwatch-api-b86a3703818f495c03bd714504c1056456c1e405.tar.xz aniwatch-api-b86a3703818f495c03bd714504c1056456c1e405.zip | |
feat(newController): added `animeGenre` controller
Diffstat (limited to 'src/controllers')
| -rw-r--r-- | src/controllers/animeGenre.controller.ts | 32 |
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; |
