# feat - info admin - hapus admin ## Issue: Loading data belum untuk versi alfa
75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
"use server";
|
|
|
|
import fs from "fs";
|
|
import prisma from "@/app/lib/prisma";
|
|
import { MODEL_DONASI } from "../../model/interface";
|
|
import { Donasi_funDeleteTemporaryCreate } from "../delete/fun_delete_temporary_create";
|
|
import { v4 } from "uuid";
|
|
import _ from "lodash";
|
|
import { revalidatePath } from "next/cache";
|
|
|
|
export async function Donasi_funCreate(req: MODEL_DONASI, file: FormData) {
|
|
const body = req;
|
|
|
|
const dataDonasi = await prisma.donasi.create({
|
|
data: {
|
|
target: body.target,
|
|
title: body.title,
|
|
donasiMaster_DurasiId: body.donasiMaster_DurasiId,
|
|
donasiMaster_KategoriId: body.donasiMaster_KategoriId,
|
|
imagesId: body.imagesId,
|
|
authorId: body.authorId,
|
|
namaBank: body.namaBank,
|
|
rekening: body.rekening
|
|
},
|
|
});
|
|
|
|
if (!dataDonasi) return { status: 400, message: "Gagal disimpan" };
|
|
await Donasi_funDeleteTemporaryCreate(body.id).then((res) => {
|
|
if (res.status === 200) {
|
|
console.log(res.message);
|
|
} else {
|
|
console.log(res.message);
|
|
}
|
|
});
|
|
|
|
const dataImage: any = file.get("file");
|
|
const fileName = dataImage.name;
|
|
const fileExtension = _.lowerCase(dataImage.name.split(".").pop());
|
|
const fRandomName = v4(fileName) + "." + fileExtension;
|
|
|
|
const uploadImageCerita = await prisma.images.create({
|
|
data: {
|
|
url: fRandomName,
|
|
},
|
|
select: {
|
|
id: true,
|
|
url: true,
|
|
},
|
|
});
|
|
|
|
if (!uploadImageCerita)
|
|
return { status: 400, message: "Gagal upload gambar" };
|
|
const uploadFolder = Buffer.from(await dataImage.arrayBuffer());
|
|
fs.writeFileSync(
|
|
`./public/donasi/image_cerita/${uploadImageCerita.url}`,
|
|
uploadFolder
|
|
);
|
|
|
|
const dataCerita = await prisma.donasi_Cerita.create({
|
|
data: {
|
|
donasiId: dataDonasi.id,
|
|
pembukaan: body.CeritaDonasi.pembukaan,
|
|
cerita: body.CeritaDonasi.cerita,
|
|
imagesId: uploadImageCerita.id,
|
|
},
|
|
});
|
|
|
|
if (!dataCerita) return { status: 400, message: "Gagal simpan data cerita" };
|
|
revalidatePath("/dev/donasi/main/galang_dana");
|
|
return {
|
|
status: 201,
|
|
message: "Data donasi tersimpan",
|
|
};
|
|
}
|