Fix: Upload image

- Upload image berita ke server wibu
- Tampilan detail image di ambil dari server wibu
## No issue
This commit is contained in:
2024-10-21 09:30:44 +08:00
parent 5ff74b00f5
commit 360ba267ec
66 changed files with 1528 additions and 821 deletions

View File

@@ -1,26 +1,28 @@
"use server";
import fs from "fs";
import prisma from "@/app/lib/prisma";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
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;
export async function Donasi_funCreate({
data,
fileId,
}: {
data: MODEL_DONASI;
fileId: string;
}) {
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,
target: data.target,
title: data.title,
donasiMaster_DurasiId: data.donasiMaster_DurasiId,
donasiMaster_KategoriId: data.donasiMaster_KategoriId,
authorId: data.authorId,
namaBank: data.namaBank,
rekening: data.rekening,
imageId: data.imageId,
},
select: {
id: true,
@@ -35,42 +37,19 @@ export async function Donasi_funCreate(req: MODEL_DONASI, file: FormData) {
});
if (!dataDonasi) return { status: 400, message: "Gagal disimpan" };
await Donasi_funDeleteTemporaryCreate(body.id);
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
);
await Donasi_funDeleteTemporaryCreate(data.id);
const dataCerita = await prisma.donasi_Cerita.create({
data: {
donasiId: dataDonasi.id,
pembukaan: body.CeritaDonasi.pembukaan,
cerita: body.CeritaDonasi.cerita,
imagesId: uploadImageCerita.id,
pembukaan: data.CeritaDonasi.pembukaan,
cerita: data.CeritaDonasi.cerita,
imageId: fileId,
},
});
if (!dataCerita) return { status: 400, message: "Gagal simpan data cerita" };
revalidatePath("/dev/donasi/main/galang_dana");
revalidatePath(RouterDonasi.penggalang_dana);
return {
data: dataDonasi,
status: 201,

View File

@@ -1,10 +1,7 @@
"use server";
import fs from "fs";
import prisma from "@/app/lib/prisma";
import { MODEL_DONASI, MODEL_DONASI_TEMPORARY } from "../../model/interface";
import _ from "lodash";
import { v4 } from "uuid";
import { MODEL_DONASI } from "../../model/interface";
interface Model_Temporary {
kategoriId: "";
@@ -13,34 +10,13 @@ interface Model_Temporary {
durasiId: "";
}
export default async function Donasi_funCreateTemporary(
data: MODEL_DONASI,
file: FormData
) {
// console.log(data, "ini data")
// console.log(file, "ini file nya")
const dataImage: any = file.get("file");
const fileName = dataImage.name;
const fileExtension = _.lowerCase(dataImage.name.split(".").pop());
const fRandomName = v4(fileName) + "." + fileExtension;
const uploadTemporary = await prisma.images.create({
data: {
url: fRandomName,
},
select: {
id: true,
url: true,
},
});
if (!uploadTemporary) return { status: 400, message: "Gagal upload gambar" };
const uploadFolder = Buffer.from(await dataImage.arrayBuffer());
fs.writeFileSync(
`./public/donasi/image/${uploadTemporary.url}`,
uploadFolder
);
export default async function Donasi_funCreateTemporary({
data,
fileId,
}: {
data: MODEL_DONASI;
fileId: string;
}) {
const res = await prisma.donasi_TemporaryCreate.create({
data: {
@@ -48,7 +24,7 @@ export default async function Donasi_funCreateTemporary(
target: data.target,
donasiMaster_KategoriId: data.donasiMaster_KategoriId,
donasiMaster_DurasiId: data.donasiMaster_DurasiId,
imagesId: uploadTemporary.id,
imageId: fileId,
},
});

View File

@@ -21,6 +21,9 @@ export async function Donasi_getAuthorById(authorId: string) {
},
},
Donasi: {
orderBy: {
createdAt: "desc",
},
where: {
donasiMaster_StatusDonasiId: "1",
},
@@ -46,6 +49,7 @@ export async function Donasi_getAuthorById(authorId: string) {
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
imageId: true,
},
},
},

View File

@@ -13,6 +13,7 @@ export default async function Donasi_getCeritaByDonasiId(donasiId: string) {
cerita: true,
imageCeritaDonasi: true,
createdAt: true,
imageId: true,
},
});
return data;

View File

@@ -17,28 +17,15 @@ export async function donasi_funGetAllPublish({ page }: { page: number }) {
donasiMaster_StatusDonasiId: "1",
active: true,
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
progres: true,
terkumpul: true,
authorId: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
include: {
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
Donasi_Invoice: true,
Donasi_Kabar: true,
Donasi_PencairanDana: true,
},
});

View File

@@ -7,30 +7,16 @@ export async function Donasi_getOneById(donasiId: string) {
where: {
id: donasiId,
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
authorId: true,
progres: true,
terkumpul: true,
imagesId: true,
namaBank: true,
rekening: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
include: {
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
Donasi_Invoice: true,
Donasi_Kabar: true,
Donasi_PencairanDana: true,
},
});

View File

@@ -8,5 +8,6 @@ export async function Donasi_getTemporaryCreate(id: string) {
id: id,
},
});
return data;
}

View File

@@ -33,6 +33,7 @@ export async function donasi_funGetAllStatusPublish({
publishTime: true,
DonasiMaster_Durasi: true,
terkumpul: true,
imageId: true,
},
});
return data;