Kabar Donasi

# feat
- Create kabar
- Delete kabar
- List kabar
## No issue
This commit is contained in:
2024-01-09 10:42:00 +08:00
parent b4fe35e7d8
commit 4af3f74a97
51 changed files with 678 additions and 147 deletions

View File

@@ -0,0 +1,50 @@
"use server";
import prisma from "@/app/lib/prisma";
import _ from "lodash";
import { v4 } from "uuid";
import fs from "fs";
import { MODEL_DONASI_KABAR } from "../../model/interface";
import { revalidatePath } from "next/cache";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
export async function Donasi_funCreateKabar(
req: MODEL_DONASI_KABAR | any,
file: FormData
) {
const dataImage: any = file.get("file");
const fileName = dataImage.name;
const fileExtension = _.lowerCase(dataImage.name.split(".").pop());
const fRandomName = v4(fileName) + "." + fileExtension;
const upload = await prisma.images.create({
data: {
url: fRandomName,
label: "DONASI_KABAR"
},
select: {
id: true,
url: true,
},
});
if (!upload) return { status: 400, message: "Gagal upload gambar" };
const uploadFolder = Buffer.from(await dataImage.arrayBuffer());
fs.writeFileSync(`./public/donasi/kabar/${upload.url}`, uploadFolder);
const create = await prisma.donasi_Kabar.create({
data: {
title: req.title,
deskripsi: req.deskripsi,
donasiId: req.donasiId,
imagesId: upload.id
},
});
if(!create) return {status: 400, message: "Gagal membuat data"}
revalidatePath("/dev/donasi/list_kabar")
return{
status: 200,
message: "Berhasil disimpan"
}
}

View File

@@ -0,0 +1,35 @@
"use server";
import prisma from "@/app/lib/prisma";
import fs from "fs";
import { revalidatePath } from "next/cache";
export async function Donasi_funDeleteKabar(kabarId: string) {
const del = await prisma.donasi_Kabar.delete({
where: {
id: kabarId,
},
select: {
imagesId: true,
},
});
if (!del) return { status: 400, message: "Gagal hapus data" };
const delImg = await prisma.images.delete({
where: {
id: del.imagesId as any,
},
select: {
url: true,
},
});
if (!delImg) return { status: 400, message: "Gagal hapus gambar" };
if (delImg) fs.unlinkSync(`./public/donasi/kabar/${delImg.url}`);
revalidatePath("/dev/donasi/list_kabar");
return {
status: 200,
message: "Berhasl hapus",
};
}

View File

@@ -23,6 +23,7 @@ export default async function Donasi_getByStatus(
title: true,
imagesId: true,
target: true,
progres: true,
publishTime: true,
DonasiMaster_Durasi: true,
terkumpul: true,

View File

@@ -0,0 +1,39 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getListDonatur(donasiId: string) {
const data = await prisma.donasi_Invoice.findMany({
where: {
donasiId: donasiId,
donasiMaster_StatusInvoiceId: "1",
},
select: {
id: true,
nominal: true,
DonasiMaster_StatusInvoice: true,
donasiMaster_StatusInvoiceId: true,
Author: true,
Donasi: {
select: {
id: true,
title: true,
target: true,
progres: true,
authorId: true,
imagesId: true,
publishTime: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
imageDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
},
},
},
});
return data;
}

View File

@@ -0,0 +1,19 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getListKabar(donasiId: string) {
// console.log(donasiId)
const data = await prisma.donasi_Kabar.findMany({
where: {
donasiId: donasiId,
},
select: {
id: true,
title: true,
deskripsi: true,
createdAt: true
}
});
return data;
}

View File

@@ -0,0 +1,12 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getOneKabar(kabarId: string) {
const data = await prisma.donasi_Kabar.findFirst({
where: {
id: kabarId,
},
});
return data;
}