diff options
| author | Ritesh Ghosh <[email protected]> | 2023-08-17 23:17:54 +0530 |
|---|---|---|
| committer | Ritesh Ghosh <[email protected]> | 2023-08-17 23:17:54 +0530 |
| commit | a67070ec5f4c2e295f286fcf53e1bd1672664d84 (patch) | |
| tree | f6c21d7319f91526fc5f8416530179fa399ba6eb | |
| parent | 6e8d84970e19ac43186fa3837dff0e18b168e213 (diff) | |
| download | aniwatch-api-a67070ec5f4c2e295f286fcf53e1bd1672664d84.tar.xz aniwatch-api-a67070ec5f4c2e295f286fcf53e1bd1672664d84.zip | |
feat(animeEpisodes): added `animeEpisodes` parser controller
| -rw-r--r-- | src/controllers/animeEpisodes.controller.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/controllers/animeEpisodes.controller.ts b/src/controllers/animeEpisodes.controller.ts new file mode 100644 index 0000000..35abdf2 --- /dev/null +++ b/src/controllers/animeEpisodes.controller.ts @@ -0,0 +1,31 @@ +import createHttpError from "http-errors"; +import { RequestHandler } from "express"; +import { scrapeAnimeEpisodes } from "../parsers"; +import { AnimeEpisodePathParams } from "../models/controllers"; + +// /anime/episodes/${anime-id} +const getAnimeEpisodes: RequestHandler< + AnimeEpisodePathParams, + Awaited<ReturnType<typeof scrapeAnimeEpisodes>>, + unknown, + unknown +> = async (req, res, next) => { + try { + const animeId = req.params.animeId + ? decodeURIComponent(req.params.animeId) + : null; + + if (animeId === null) { + throw createHttpError.BadRequest("Anime Id required"); + } + + const data = await scrapeAnimeEpisodes(animeId); + + res.status(200).json(data); + } catch (err: any) { + console.error(err); + next(err); + } +}; + +export default getAnimeEpisodes; |
