media-detail #31

Merged
rafiarrafif merged 4 commits from media-detail into main 2026-04-21 20:44:52 +07:00
13 changed files with 157 additions and 41 deletions
Showing only changes of commit 72f8e9e4eb - Show all commits

View File

@ -9,7 +9,7 @@ export const getMediaBySlugController = async (ctx: {
params: Static<typeof getMediaBySlugSchema.params>;
}) => {
try {
const mediaData = getMediaBySlugService(ctx.params.slug);
const mediaData = await getMediaBySlugService(ctx.params.slug);
return returnReadResponse(ctx.set, 200, "Media fetched successfully", mediaData);
} catch (error) {
return mainErrorHandler(ctx.set, error);

View File

@ -0,0 +1,12 @@
import { AppError } from "../../../../helpers/error/instances/app";
import { prisma } from "../../../../utils/databases/prisma/connection";
export const selectMediaBySlugRepository = async (slug: string) => {
try {
return await prisma.media.findUnique({
where: { slug },
});
} catch (error) {
throw new AppError(500, "Failed to fetch media by slug", error);
}
};

View File

@ -1,8 +1,13 @@
import { AppError } from "../../../../helpers/error/instances/app";
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
import { selectMediaBySlugRepository } from "../../repositories/SELECT/selectMediaBySlug.repository";
export const getMediaBySlugService = (slug: string) => {
export const getMediaBySlugService = async (slug: string) => {
try {
return `Mengambil media dengan slug '${slug}'`;
const mediaData = await selectMediaBySlugRepository(slug);
if (!mediaData) throw new AppError(404, "Media not found with the provided slug.");
return mediaData;
} catch (error) {
ErrorForwarder(error);
}