diff --git a/src/pages/api/title/[titleId]/reviews/index.ts b/src/pages/api/title/[titleId]/reviews/index.ts index 9965a27..fa2319b 100644 --- a/src/pages/api/title/[titleId]/reviews/index.ts +++ b/src/pages/api/title/[titleId]/reviews/index.ts @@ -1,18 +1,21 @@ import type { NextApiRequest, NextApiResponse } from 'next'; -import type Title from 'src/interfaces/shared/title'; -import title from 'src/utils/fetchers/title'; +import type TitleReviews from 'src/interfaces/shared/titleReviews'; +import reviews from 'src/utils/fetchers/titleReviews'; import getOrSetApiCache from 'src/utils/getOrSetApiCache'; -import { titleKey } from 'src/utils/constants/keys'; -import { AppError } from 'src/utils/helpers'; +import { titleReviewsKey } from 'src/utils/constants/keys'; +import { keys } from 'src/utils/constants/titleReviewsFilters'; +import { AppError, cleanQueryStr } from 'src/utils/helpers'; -type ResponseData = { status: true; data: Title } | { status: false; message: string }; +type ResponseData = { status: true; data: TitleReviews } | { status: false; message: string }; export default async function handler(req: NextApiRequest, res: NextApiResponse) { try { if (req.method !== 'GET') throw new AppError('Invalid method', 400); const titleId = req.query.titleId as string; - const data = await getOrSetApiCache(titleKey(titleId), title, titleId); + const queryObj = req.query as Record; + const queryStr = cleanQueryStr(queryObj, keys); + const data = await getOrSetApiCache(titleReviewsKey(titleId), reviews, titleId, queryStr); res.status(200).json({ status: true, data }); } catch (error: any) { const { message = 'Not found', statusCode = 404 } = error;