fix: forum

deskripsi:
- fix use server menjadi API pada repot posting dan komentar
This commit is contained in:
2025-06-03 16:38:47 +08:00
parent f275ccd8a7
commit 42cfe650b5
10 changed files with 376 additions and 62 deletions

View File

@@ -0,0 +1,73 @@
import prisma from "@/lib/prisma";
import _ from "lodash";
import { NextResponse } from "next/server";
export async function GET(
request: Request,
{ params }: { params: { id: string } }
) {
try {
const { id } = params;
const data = await prisma.forum_Komentar.findFirst({
where: {
id: id,
},
select: {
id: true,
komentar: true,
Forum_Posting: {
select: {
id: true,
diskusi: true,
Author: {
select: {
username: true,
},
},
},
},
Forum_ReportKomentar: {
select: {
deskripsi: true,
ForumMaster_KategoriReport: {
select: {
id: true,
title: true,
},
},
},
},
},
});
const group = _.groupBy(
data?.Forum_ReportKomentar,
(v) => v.ForumMaster_KategoriReport?.title
);
const getKey = _.keys(group);
const filterGroup = getKey.map((e) => e.replace("undefined", "Lainnya"));
const allData = {
data: data,
list: filterGroup,
};
return NextResponse.json({
success: true,
message: "Success get data report komentar",
data: allData,
});
} catch (error) {
console.error("Error get data report komentar", error);
return NextResponse.json(
{
success: false,
message: "Error get data report komentar",
reason: (error as Error).message,
},
{ status: 500 }
);
}
}

View File

@@ -0,0 +1,57 @@
import _ from "lodash";
import { NextResponse } from "next/server";
import prisma from "@/lib/prisma";
export async function GET(
request: Request,
{ params }: { params: { id: string } }
) {
try {
const { id } = params;
const data = await prisma.forum_Posting.findFirst({
where: {
id: id,
},
select: {
id: true,
diskusi: true,
Forum_ReportPosting: {
select: {
id: true,
deskripsi: true,
forumMaster_KategoriReportId: true,
ForumMaster_KategoriReport: true,
},
},
},
});
const group = _.groupBy(
data?.Forum_ReportPosting,
(val) => val.ForumMaster_KategoriReport?.title
);
const getKey = _.keys(group);
const filterGroup = getKey.map((e) => e.replace("undefined", "Lainnya"));
const allData = {
data: data,
list: filterGroup,
};
return NextResponse.json({
success: true,
message: "Success get data report posting",
data: allData,
});
} catch (error) {
console.error("Error get data report posting", error);
return NextResponse.json(
{
success: false,
message: "Error get data report posting",
reason: (error as Error).message,
},
{ status: 500 }
);
}
}