aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/animeSearch.controller.ts
diff options
context:
space:
mode:
authorRitesh Ghosh <[email protected]>2024-10-06 01:13:23 +0530
committerGitHub <[email protected]>2024-10-06 01:13:23 +0530
commit46f688ac12a99b8fb145b0745dd4cc6babff1e1e (patch)
tree9560dd057822069a2162ef01a1118f3ac05e6d07 /src/controllers/animeSearch.controller.ts
parent55810ccf2372209f9b46c96ac12811e5a05f7961 (diff)
downloadaniwatch-api-46f688ac12a99b8fb145b0745dd4cc6babff1e1e.tar.xz
aniwatch-api-46f688ac12a99b8fb145b0745dd4cc6babff1e1e.zip
Aniwatch API Version 2 (#66)
BREAKING CHANGE: * chore: remove files that are not necessary for api v2 * test: update existing tests to use pkg * feat: organized aniwatch api envs and add more info about them * feat: update tsconfig to include strict noUnsed params * feat(api homepage): revamp api home page * feat: update wani kuni image * feat: add dot img * feat: use hono cors * feat: use hono rate limiter * build: remove unnecessary deps, add ones needed and update description * feat: add hianime routes and their handlers * feat: update vercel deployment file * docs: update logo and scraper docs, add envs section * feat: update main server file * feat: update peronal deployments caution section
Diffstat (limited to 'src/controllers/animeSearch.controller.ts')
-rw-r--r--src/controllers/animeSearch.controller.ts57
1 files changed, 0 insertions, 57 deletions
diff --git a/src/controllers/animeSearch.controller.ts b/src/controllers/animeSearch.controller.ts
deleted file mode 100644
index 8937b0a..0000000
--- a/src/controllers/animeSearch.controller.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import createHttpError from "http-errors";
-import { type RequestHandler } from "express";
-import { scrapeAnimeSearch } from "../parsers/index.js";
-import type {
- SearchFilters,
- AnimeSearchQueryParams,
-} from "../types/controllers/index.js";
-
-const searchFilters: Record<string, boolean> = {
- filter: true,
- type: true,
- status: true,
- rated: true,
- score: true,
- season: true,
- language: true,
- start_date: true,
- end_date: true,
- sort: true,
- genres: true,
-} as const;
-
-// /anime/search?q=${query}&page=${page}
-const getAnimeSearch: RequestHandler<
- unknown,
- Awaited<ReturnType<typeof scrapeAnimeSearch>>,
- unknown,
- AnimeSearchQueryParams
-> = async (req, res, next) => {
- try {
- let { q: query, page, ...filters } = req.query;
-
- query = query ? decodeURIComponent(query) : undefined;
- const pageNo = page ? Number(decodeURIComponent(page as string)) : 1;
-
- if (query === undefined) {
- throw createHttpError.BadRequest("Search keyword required");
- }
-
- const parsedFilters: SearchFilters = {};
- for (const key in filters) {
- if (searchFilters[key]) {
- parsedFilters[key as keyof SearchFilters] =
- filters[key as keyof SearchFilters];
- }
- }
-
- const data = await scrapeAnimeSearch(query, pageNo, parsedFilters);
-
- res.status(200).json(data);
- } catch (err: any) {
- console.error(err);
- next(err);
- }
-};
-
-export default getAnimeSearch;