feat: add endpoint to get episode details

This commit is contained in:
2026-02-05 21:47:02 +07:00
parent e3e4df35e2
commit 9dd02d097d
5 changed files with 134 additions and 4 deletions

View File

@ -0,0 +1,27 @@
import { AppError } from "../../../../helpers/error/instances/app";
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
import { getMediaIdFromSlugRepository } from "../../../media/repositories/GET/getMediaIdFromSlug.repository";
import { GetEpisodeDetailsParams } from "../../controllers/getEpisodeDetails.controller";
import { getEpisodeDetailsRepository } from "../../repositories/GET/getEpisodeDetails.repository";
export const getEpisodeDetailsService = async (
params: GetEpisodeDetailsParams,
) => {
try {
if (!params.mediaSlug || !params.episode)
throw new AppError(400, "Media slug and episode are required.");
const mediaId = await getMediaIdFromSlugRepository(params.mediaSlug);
if (!mediaId?.id) throw new AppError(404, "Media not found.");
const result = await getEpisodeDetailsRepository({
mediaId: mediaId.id,
episode: Number(params.episode),
});
if (!result) throw new AppError(404, "Episode not found.");
return result;
} catch (error) {
ErrorForwarder(error);
}
};