Add: - src/app/api/mobile/investment/[id]/investor/ Fix: modified: src/app/api/mobile/admin/investment/[id]/invoice/route.ts modified: src/app/api/mobile/admin/investment/[id]/route.ts modified: src/app/api/mobile/investment/[id]/invoice/route.ts modified: src/app/api/mobile/investment/[id]/route.ts modified: src/app/api/mobile/investment/route.ts #### No Issue
209 lines
4.8 KiB
TypeScript
209 lines
4.8 KiB
TypeScript
import prisma from "@/lib/prisma";
|
|
import { NextResponse } from "next/server";
|
|
|
|
export { DELETE, GET, PUT };
|
|
|
|
async function GET(request: Request, { params }: { params: { id: string } }) {
|
|
const { id } = params;
|
|
|
|
try {
|
|
const data = await prisma.investasi.findUnique({
|
|
where: {
|
|
id: id,
|
|
},
|
|
include: {
|
|
author: {
|
|
include: {
|
|
Profile: true,
|
|
},
|
|
},
|
|
Investasi_Invoice: {
|
|
where: {
|
|
statusInvoiceId: "1"
|
|
}
|
|
},
|
|
MasterStatusInvestasi: true,
|
|
BeritaInvestasi: true,
|
|
DokumenInvestasi: true,
|
|
ProspektusInvestasi: true,
|
|
MasterPembagianDeviden: true,
|
|
MasterPencarianInvestor: true,
|
|
MasterPeriodeDeviden: true,
|
|
MasterProgresInvestasi: true,
|
|
},
|
|
});
|
|
|
|
return NextResponse.json({
|
|
status: 200,
|
|
success: true,
|
|
message: "Berhasil Mendapatkan Data",
|
|
data: data,
|
|
});
|
|
} catch (error) {
|
|
return NextResponse.json({
|
|
status: 500,
|
|
success: false,
|
|
message: "Error Mendapatkan Data",
|
|
reason: (error as Error).message,
|
|
});
|
|
}
|
|
}
|
|
|
|
async function DELETE(
|
|
request: Request,
|
|
{ params }: { params: { id: string } }
|
|
) {
|
|
const { id } = params;
|
|
|
|
try {
|
|
const checkData = await prisma.investasi.findUnique({
|
|
where: {
|
|
id: id,
|
|
},
|
|
select: {
|
|
imageId: true,
|
|
prospektusFileId: true,
|
|
DokumenInvestasi: true,
|
|
},
|
|
});
|
|
|
|
if (!checkData) {
|
|
return NextResponse.json({
|
|
status: 404,
|
|
success: false,
|
|
message: "Data tidak ditemukan",
|
|
});
|
|
}
|
|
|
|
const listDocument = checkData.DokumenInvestasi;
|
|
|
|
for (let i of listDocument) {
|
|
const deleteFile = await fetch(
|
|
`https://wibu-storage.wibudev.com/api/files/${i.fileId}/delete`,
|
|
{
|
|
method: "DELETE",
|
|
headers: {
|
|
Authorization: `Bearer ${process.env.WS_APIKEY}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (!deleteFile.ok) {
|
|
console.log("[DELETE FILE]", deleteFile);
|
|
}
|
|
|
|
const delDocument = await prisma.dokumenInvestasi.delete({
|
|
where: {
|
|
id: i.id,
|
|
},
|
|
});
|
|
|
|
console.log("[DELETE DOCUMENT]", delDocument);
|
|
}
|
|
|
|
const delImage = await fetch(
|
|
`https://wibu-storage.wibudev.com/api/files/${checkData.imageId}/delete`,
|
|
{
|
|
method: "DELETE",
|
|
headers: {
|
|
Authorization: `Bearer ${process.env.WS_APIKEY}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
const delProspektus = await fetch(
|
|
`https://wibu-storage.wibudev.com/api/files/${checkData.prospektusFileId}/delete`,
|
|
{
|
|
method: "DELETE",
|
|
headers: {
|
|
Authorization: `Bearer ${process.env.WS_APIKEY}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
const data = await prisma.investasi.delete({
|
|
where: {
|
|
id: id,
|
|
},
|
|
});
|
|
|
|
return NextResponse.json({
|
|
status: 200,
|
|
success: true,
|
|
message: "Berhasil Menghapus Data",
|
|
});
|
|
} catch (error) {
|
|
return NextResponse.json({
|
|
status: 500,
|
|
success: false,
|
|
message: "Error Menghapus Data",
|
|
reason: (error as Error).message,
|
|
});
|
|
}
|
|
}
|
|
|
|
async function PUT(request: Request, { params }: { params: { id: string } }) {
|
|
try {
|
|
let fixData;
|
|
const { id } = params;
|
|
const { data } = await request.json();
|
|
console.log("[PUT INVESTASI]", id, data);
|
|
|
|
const { searchParams } = new URL(request.url);
|
|
const category = searchParams.get("category");
|
|
|
|
console.log("[Category]", category);
|
|
|
|
if (category === "data") {
|
|
const updateData = await prisma.investasi.update({
|
|
where: {
|
|
id: id,
|
|
},
|
|
data: {
|
|
authorId: data.authorId,
|
|
title: data.title,
|
|
targetDana: data.targetDana,
|
|
hargaLembar: data.hargaLembar,
|
|
totalLembar: data.totalLembar,
|
|
roi: data.roi,
|
|
masterPencarianInvestorId: data.masterPencarianInvestorId,
|
|
masterPeriodeDevidenId: data.masterPeriodeDevidenId,
|
|
masterPembagianDevidenId: data.masterPembagianDevidenId,
|
|
imageId: data.imageId,
|
|
},
|
|
});
|
|
|
|
// console.log("[UPDATE INVESTASI]", updateData);
|
|
|
|
fixData = updateData;
|
|
} else if (category === "prospectus") {
|
|
const updateData = await prisma.investasi.update({
|
|
where: {
|
|
id: id,
|
|
},
|
|
data: {
|
|
prospektusFileId: data,
|
|
},
|
|
});
|
|
|
|
// console.log("[UPDATE PROSPEKTUS]", updateData);
|
|
|
|
fixData = updateData;
|
|
}
|
|
|
|
return NextResponse.json({
|
|
status: 200,
|
|
success: true,
|
|
message: "Berhasil Mengupdate Data",
|
|
data: fixData,
|
|
});
|
|
} catch (error) {
|
|
return NextResponse.json({
|
|
status: 500,
|
|
success: false,
|
|
message: "Error Mengupdate Data",
|
|
reason: (error as Error).message,
|
|
});
|
|
}
|
|
}
|