aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/animeSearch.controller.ts
diff options
context:
space:
mode:
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;