Fix: Image donasi
Deksripsi: - Tampilan image dari server wibu - Upload image ke server wibu ## No Issue
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ export async function donasi_funGetAllInvoiceByAuthorId({
|
||||
DonasiMaster_Ketegori: true,
|
||||
DonasiMaster_Durasi: true,
|
||||
DonasiMaster_Status: true,
|
||||
imageId: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
45
src/app_modules/donasi/fun/update/fun_update_kabar.tsx
Normal file
45
src/app_modules/donasi/fun/update/fun_update_kabar.tsx
Normal 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" };
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user