From c9325f4b66f02d4c238604e0b37cb1618ae1f83e Mon Sep 17 00:00:00 2001 From: Ritesh Ghosh Date: Sun, 13 Aug 2023 19:34:39 +0530 Subject: [PATCH] feat(animeSearchSuggestion): added `animeSearchSuggestion` controller --- .../animeSearchSuggestion.controller.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/controllers/animeSearchSuggestion.controller.ts diff --git a/src/controllers/animeSearchSuggestion.controller.ts b/src/controllers/animeSearchSuggestion.controller.ts new file mode 100644 index 0000000..5831a81 --- /dev/null +++ b/src/controllers/animeSearchSuggestion.controller.ts @@ -0,0 +1,31 @@ +import createHttpError from "http-errors"; +import { RequestHandler } from "express"; +import { scrapeAnimeSearchSuggestion } from "../parsers"; +import { AnimeSearchSuggestQueryParams } from "../models/controllers"; + +// /anime/search/suggest?q=${query} +const getAnimeSearchSuggestion: RequestHandler< + unknown, + Awaited>, + unknown, + AnimeSearchSuggestQueryParams +> = async (req, res, next) => { + try { + const query: string | null = req.query.q + ? decodeURIComponent(req.query.q as string) + : null; + + if (query === null) { + throw createHttpError.BadRequest("Search keyword required"); + } + + const data = await scrapeAnimeSearchSuggestion(query); + + res.status(200).json(data); + } catch (err: any) { + console.error(err); + next(err); + } +}; + +export default getAnimeSearchSuggestion;