Files
hipmi/src/app/api/mobile/investment/[id]/route.ts
bagasbanuna 9a967f0965 API Mobile
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
2025-11-03 17:53:58 +08:00

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,
});
}
}