zyachel 1041de5439 fix(api): fix reviews api
was returning title info
2024-03-31 16:39:26 +05:30

25 lines
1.1 KiB
TypeScript

import type { NextApiRequest, NextApiResponse } from 'next';
import type TitleReviews from 'src/interfaces/shared/titleReviews';
import reviews from 'src/utils/fetchers/titleReviews';
import getOrSetApiCache from 'src/utils/getOrSetApiCache';
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: TitleReviews } | { status: false; message: string };
export default async function handler(req: NextApiRequest, res: NextApiResponse<ResponseData>) {
try {
if (req.method !== 'GET') throw new AppError('Invalid method', 400);
const titleId = req.query.titleId as string;
const queryObj = req.query as Record<string, string>;
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;
res.status(statusCode).json({ status: false, message });
}
}