Fix: Image donasi

Deksripsi:
- Tampilan image dari server wibu
- Upload image ke server wibu
## No Issue
This commit is contained in:
2024-10-28 10:24:38 +08:00
parent 360ba267ec
commit 0371ca5e01
96 changed files with 1562 additions and 1528 deletions

View File

@@ -1,68 +1,48 @@
"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";
import { revalidatePath } from "next/cache";
import { MODEL_DONASI_KABAR } from "../../model/interface";
export async function Donasi_funCreateKabar(
req: MODEL_DONASI_KABAR | any,
file: FormData
) {
const dataImage: any = file.get("file");
if (dataImage !== "null") {
const fileName = dataImage.name;
const fileExtension = _.lowerCase(dataImage.name.split(".").pop());
const fRandomName = v4(fileName) + "." + fileExtension;
const upload = await prisma.images.create({
export async function Donasi_funCreateKabar({
data,
fileId,
}: {
data: MODEL_DONASI_KABAR;
fileId?: string;
}) {
if (fileId !== undefined) {
const createWithFile = await prisma.donasi_Kabar.create({
data: {
url: fRandomName,
label: "DONASI_KABAR",
},
select: {
id: true,
url: true,
title: data.title,
deskripsi: data.deskripsi,
donasiId: data.donasiId,
imageId: fileId,
},
});
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 createWithPhoto = await prisma.donasi_Kabar.create({
data: {
title: req.title,
deskripsi: req.deskripsi,
donasiId: req.donasiId,
imagesId: upload.id,
},
});
if (!createWithPhoto) return { status: 400, message: "Gagal membuat data" };
if (!createWithFile) return { status: 400, message: "Gagal disimpan" };
revalidatePath(RouterDonasi.list_kabar + data.donasiId);
return {
status: 200,
message: "Berhasil disimpan",
kabarId: createWithPhoto.id,
kabarId: createWithFile.id,
};
} else {
const create = await prisma.donasi_Kabar.create({
data: {
title: data.title,
deskripsi: data.deskripsi,
donasiId: data.donasiId,
},
});
revalidatePath(RouterDonasi.list_kabar + data.donasiId);
return {
status: 200,
message: "Berhasil disimpan",
kabarId: create.id,
};
}
const create = await prisma.donasi_Kabar.create({
data: {
title: req.title,
deskripsi: req.deskripsi,
donasiId: req.donasiId,
},
});
revalidatePath("/dev/donasi/list_kabar");
return {
status: 200,
message: "Berhasil disimpan",
kabarId: create.id,
};
}

View File

@@ -1,86 +1,15 @@
"use server";
import prisma from "@/app/lib/prisma";
import fs from "fs";
export async function Donasi_funDeleteDonasiById(donasiId: string) {
const findDonasi = await prisma.donasi.findFirst({
where: {
id: donasiId,
},
select: {
imagesId: true,
CeritaDonasi: {
select: {
id: true,
imagesId: true,
},
},
},
});
if (!findDonasi) return { status: 400, message: "Data tidak ditemukan" };
// const findGambar = await prisma.images.findFirst({
// where: {
// id: findDonasi.imagesId as any,
// },
// select: {
// url: true,
// },
// });
// const findGambarCerita = await prisma.images.findFirst({
// where: {
// id: findDonasi.CeritaDonasi?.imagesId as any,
// },
// select: {
// url: true,
// },
// });
if (findDonasi.imagesId !== null) {
const delGambar = await prisma.images.delete({
where: {
id: findDonasi.imagesId as any,
},
select: {
url: true,
},
});
const delFromFileGambar = fs.unlinkSync(
`./public/donasi/image/${delGambar?.url}`
);
if (delFromFileGambar as any)
return { status: 400, message: "Gagal hapus gambar" };
}
if (findDonasi.CeritaDonasi?.imagesId !== null) {
const delGambarCerita = await prisma.images.delete({
where: {
id: findDonasi.CeritaDonasi?.imagesId as any,
},
select: {
url: true,
},
});
const delFromFileGambarCerita = fs.unlinkSync(
`./public/donasi/image_cerita/${delGambarCerita?.url}`
);
if (delFromFileGambarCerita as any)
return { status: 400, message: "Gagal hapus gambar cerita" };
}
const delCerita = await prisma.donasi_Cerita.delete({
where: {
id: findDonasi.CeritaDonasi?.id,
donasiId: donasiId,
},
});
if(!delCerita) return {status: 400, message: "Gagal hapus data cerita"}
if (!delCerita) return { status: 400, message: "Gagal hapus data cerita" };
const delDonasi = await prisma.donasi.delete({
where: {

View File

@@ -1,51 +1,24 @@
"use server";
import prisma from "@/app/lib/prisma";
import fs from "fs";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
export async function Donasi_funDeleteKabar(kabarId: string) {
const dataKabar = await prisma.donasi_Kabar.findFirst({
where: {
id: kabarId,
},
select: {
imagesId: true,
},
});
if (dataKabar?.imagesId !== null) {
const delImg = await prisma.images.delete({
where: {
id: dataKabar?.imagesId,
},
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");
}
const delNotif = await prisma.donasi_Notif.deleteMany({
where: {
donasi_KabarId: kabarId,
},
});
if (!delNotif) return { status: 400, message: "Gagal hapus notif" };
const del = await prisma.donasi_Kabar.delete({
where: {
id: kabarId,
},
select:{
imageId: true
}
});
if (!del) return { status: 400, message: "Gagal hapus data" };
revalidatePath("/dev/donasi/notif_page");
revalidatePath(RouterDonasi.list_kabar);
return {
status: 200,
message: "Berhasl hapus",
imageId: del.imageId
};
}

View File

@@ -43,6 +43,7 @@ export async function donasi_funGetAllInvoiceByAuthorId({
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
imageId: true,
},
},
},

View File

@@ -3,7 +3,6 @@
import prisma from "@/app/lib/prisma";
export async function Donasi_getOneInvoiceById(invoiceId: string) {
const res = await prisma.donasi_Invoice.findFirst({
where: {
id: invoiceId,
@@ -17,32 +16,33 @@ export async function Donasi_getOneInvoiceById(invoiceId: string) {
donasiMaster_StatusInvoiceId: true,
Donasi: {
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,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
}
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,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
imageId: true,
},
},
DonasiMaster_Bank: true,
DonasiMaster_StatusInvoice: true,
},
});
return res
return res;
}

View File

@@ -1,4 +1,6 @@
import { Donasi_getMasterKategori } from "./master/get_ketegori";
import { Donasi_getMasterDurasi } from "./master/get_durasi";
import { donasi_funUpdateKabar } from "./update/fun_update_kabar";
export { Donasi_getMasterKategori, Donasi_getMasterDurasi };
export { donasi_funUpdateKabar };

View File

@@ -1,42 +1,28 @@
"use server";
import _ from "lodash";
import { MODEL_CERITA_DONASI } from "../../model/interface";
import { v4 } from "uuid";
import prisma from "@/app/lib/prisma";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
import fs from "fs";
import { MODEL_CERITA_DONASI } from "../../model/interface";
export async function Donasi_funUpdateCerita(
data: MODEL_CERITA_DONASI,
file: FormData
) {
const gambar: any = file.get("file");
if (gambar !== "null") {
const fileName = gambar.name;
const fileExtension = _.lowerCase(gambar.name.split(".").pop());
const fileRandomName = v4(fileName) + "." + fileExtension;
const updateGambar = await prisma.images.update({
export async function Donasi_funUpdateCerita({
data,
fileId,
}: {
data: MODEL_CERITA_DONASI;
fileId?: string;
}) {
if (fileId !== undefined) {
const updateFileId = await prisma.donasi_Cerita.update({
where: {
id: data.imagesId,
id: data.id,
},
data: {
url: fileRandomName,
imageId: fileId,
},
});
if (!updateGambar) return { status: 400, message: "Update gambat gagal" };
revalidatePath("/dev/donasi/detail/detail_draft");
const uploadFolder = Buffer.from(await gambar.arrayBuffer());
fs.writeFileSync(
`./public/donasi/image_cerita/${updateGambar.url}`,
uploadFolder
);
if (!updateFileId) return { status: 400, message: "Gagal update" };
}
const update = await prisma.donasi_Cerita.update({
@@ -50,7 +36,7 @@ export async function Donasi_funUpdateCerita(
});
if (!update) return { status: 400, message: "Gagal update cerita" };
revalidatePath("/dev/donasi/detail/detail_draft");
revalidatePath(RouterDonasi.detail_draft + data.id);
return {
status: 200,

View File

@@ -1,52 +1,28 @@
"use server";
import prisma from "@/app/lib/prisma";
import { MODEL_DONASI } from "../../model/interface";
import _ from "lodash";
import { v4 } from "uuid";
import fs from "fs";
import { revalidatePath, revalidateTag } from "next/cache";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
import { MODEL_DONASI } from "../../model/interface";
export async function Donasi_funUpdateDonasi(
data: MODEL_DONASI,
file: FormData
) {
// console.log(data);
const gambar: any = file.get("file");
if (gambar !== "null") {
const fileName = gambar.name;
const fileExtension = _.lowerCase(gambar.name.split(".").pop());
const fileRandomName = v4(fileName) + "." + fileExtension;
const cariGambar = await prisma.images.findFirst({
export async function Donasi_funUpdateDonasi({
data,
fileId,
}: {
data: MODEL_DONASI;
fileId?: string;
}) {
if (fileId !== undefined) {
const updateFileId = await prisma.donasi.update({
where: {
id: data.imagesId,
},
select: {
url: true,
},
});
if (!cariGambar) return { status: 400, message: "Gambar tidak ditemukan" };
revalidatePath("/dev/donasi/detail/detail_draft");
fs.unlinkSync(`./public/donasi/image/${cariGambar.url}`);
const updateGambar = await prisma.images.update({
where: {
id: data.imagesId,
id: data.id,
},
data: {
url: fileRandomName,
imageId: fileId,
},
});
if (!updateGambar) return { status: 400, message: "Update gambat gagal" };
revalidatePath("/dev/donasi/detail/detail_draft");
const uploadFolder = Buffer.from(await gambar.arrayBuffer());
fs.writeFileSync(`./public/donasi/image/${updateGambar.url}`, uploadFolder);
if (!updateFileId) return { status: 400, message: "Gagal update" };
}
const update = await prisma.donasi.update({
@@ -62,7 +38,7 @@ export async function Donasi_funUpdateDonasi(
});
if (!update) return { status: 400, message: "Gagal update" };
revalidatePath("/dev/donasi/detail/detail_draft");
revalidatePath(RouterDonasi.detail_draft + data.id);
return {
status: 200,

View File

@@ -1,41 +1,20 @@
"use server";
import prisma from "@/app/lib/prisma";
import _ from "lodash";
import { v4 } from "uuid";
import fs from "fs";
export async function Donasi_funUploadBuktiTransferById(
invoiceId: string,
file: FormData
) {
// console.log(file);
const gambar: any = file.get("file");
const fileName = gambar.name;
const fileExtension = _.lowerCase(gambar.name.split(".").pop());
const fileRandomName = v4(fileName) + "." + fileExtension;
const upload = await prisma.images.create({
data: {
url: fileRandomName,
label: "DONASI_INVOICE"
},
select: {
id: true,
url: true,
},
});
if (!upload) return { status: 400, message: "Gagal upload gambar" };
const uploadFolder = Buffer.from(await gambar.arrayBuffer());
fs.writeFileSync(`./public/donasi/invoice/${upload.url}`, uploadFolder);
export async function Donasi_funUploadBuktiTransferById({
invoiceId,
fileId,
}: {
invoiceId: string;
fileId: string;
}) {
const updateFile = await prisma.donasi_Invoice.update({
where: {
id: invoiceId,
},
data: {
imagesId: upload.id,
imageId: fileId,
},
});

View File

@@ -0,0 +1,45 @@
"use server";
import { prisma } from "@/app/lib";
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_funUpdateKabar({
data,
fileId,
}: {
data: MODEL_DONASI_KABAR;
fileId?: string;
}) {
if (fileId !== undefined) {
const updt = await prisma.donasi_Kabar.update({
where: {
id: data.id,
},
data: {
title: data.title,
deskripsi: data.deskripsi,
imageId: fileId,
},
});
if (!updt) return { status: 400, message: "Gagal Update" };
revalidatePath(RouterDonasi.update_kabar + data.id);
return { status: 200, message: "Berhasil Update" };
} else {
const updt = await prisma.donasi_Kabar.update({
where: {
id: data.id,
},
data: {
title: data.title,
deskripsi: data.deskripsi,
},
});
if (!updt) return { status: 400, message: "Gagal Update" };
revalidatePath(RouterDonasi.update_kabar + data.id);
return { status: 200, message: "Berhasil Update" };
}
}

View File

@@ -3,19 +3,22 @@
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
export async function Donasi_funUpdateStatusInvoice(
invoiceId: string,
statusId: string
) {
// console.log(invoiceId, "invoice Id");
// console.log(status, "status");
export async function Donasi_funUpdateStatusInvoice({
invoiceId,
statusId,
fileId,
}: {
invoiceId: string;
statusId: string;
fileId: string;
}) {
const data = await prisma.donasi_Invoice.update({
where: {
id: invoiceId,
},
data: {
donasiMaster_StatusInvoiceId: statusId,
imageId: fileId,
},
select: {
id: true,
@@ -36,7 +39,7 @@ export async function Donasi_funUpdateStatusInvoice(
if (!data)
return { status: 400, message: "Gagal memperbarui status transaksi" };
revalidatePath("dev/admin/donasi/detail/publish");
// revalidatePath("dev/admin/donasi/detail/publish");
return {
data: data,
status: 200,