diff options
| author | Ritesh Ghosh <[email protected]> | 2024-10-06 01:13:23 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-10-06 01:13:23 +0530 |
| commit | 46f688ac12a99b8fb145b0745dd4cc6babff1e1e (patch) | |
| tree | 9560dd057822069a2162ef01a1118f3ac05e6d07 /src/controllers/animeSearch.controller.ts | |
| parent | 55810ccf2372209f9b46c96ac12811e5a05f7961 (diff) | |
| download | aniwatch-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.ts | 57 |
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; |
