diff options
| author | Ritesh Ghosh <[email protected]> | 2023-08-28 17:48:18 +0530 |
|---|---|---|
| committer | Ritesh Ghosh <[email protected]> | 2023-08-28 17:48:18 +0530 |
| commit | dfe284a9a7bbef76b59a88c3f75d294663b6001d (patch) | |
| tree | b875fce0e8292d51bfb2c20d792b3473b76acde5 /src | |
| parent | df0f689ff360fc8a80ae313ba9d9d03350e82518 (diff) | |
| download | aniwatch-api-dfe284a9a7bbef76b59a88c3f75d294663b6001d.tar.xz aniwatch-api-dfe284a9a7bbef76b59a88c3f75d294663b6001d.zip | |
feat(episodeServers): added `getEpisodeServers` controller
Diffstat (limited to 'src')
| -rw-r--r-- | src/controllers/episodeServers.controller.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/controllers/episodeServers.controller.ts b/src/controllers/episodeServers.controller.ts new file mode 100644 index 0000000..572e8f6 --- /dev/null +++ b/src/controllers/episodeServers.controller.ts @@ -0,0 +1,30 @@ +import createHttpError from "http-errors"; +import { RequestHandler } from "express"; +import { scrapeEpisodeServers } from "../parsers"; +import { EpisodeServersQueryParams } from "../models/controllers"; + +// /anime/servers?episodeId=${id} +const getEpisodeServers: RequestHandler< + unknown, + Awaited<ReturnType<typeof scrapeEpisodeServers>>, + unknown, + EpisodeServersQueryParams +> = async (req, res, next) => { + try { + const episodeId = req.query.episodeId + ? decodeURIComponent(req.query?.episodeId as string) + : null; + + if (episodeId === null) { + throw createHttpError.BadRequest("Episode id required"); + } + + const data = await scrapeEpisodeServers(episodeId); + res.status(200).json(data); + } catch (err: any) { + console.error(err); + next(err); + } +}; + +export default getEpisodeServers; |
