Donasi Info Admni
# feat - info admin - hapus admin ## Issue: Loading data belum untuk versi alfa
This commit is contained in:
@@ -19,6 +19,8 @@ export async function Donasi_funCreate(req: MODEL_DONASI, file: FormData) {
|
||||
donasiMaster_KategoriId: body.donasiMaster_KategoriId,
|
||||
imagesId: body.imagesId,
|
||||
authorId: body.authorId,
|
||||
namaBank: body.namaBank,
|
||||
rekening: body.rekening
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -12,39 +12,55 @@ 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"
|
||||
if (!create) return { status: 400, message: "Gagal membuat data" };
|
||||
|
||||
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({
|
||||
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 updateKabar = await prisma.donasi_Kabar.update({
|
||||
where: {
|
||||
id: create.id,
|
||||
},
|
||||
data: {
|
||||
imagesId: upload.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (!updateKabar) return { status: 400, message: "Gagal upload gambar" };
|
||||
}
|
||||
|
||||
|
||||
|
||||
revalidatePath("/dev/donasi/list_kabar");
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasil disimpan",
|
||||
kabarId: create.id
|
||||
};
|
||||
}
|
||||
|
||||
41
src/app_modules/donasi/fun/create/fun_create_notif.ts
Normal file
41
src/app_modules/donasi/fun/create/fun_create_notif.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
|
||||
import _ from "lodash";
|
||||
import { revalidatePath } from "next/cache";
|
||||
|
||||
export async function Donasi_funCreateNotif(donasiId: string, kabarId: string) {
|
||||
const dataDonatur = await prisma.donasi_Invoice.findMany({
|
||||
where: {
|
||||
donasiId: donasiId,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
authorId: true,
|
||||
},
|
||||
});
|
||||
|
||||
const group = _.map(_.groupBy(dataDonatur, "authorId"), (v: any) => ({
|
||||
authorId: v[0].authorId,
|
||||
}));
|
||||
|
||||
// console.log(donasiId,dataDonatur, group);
|
||||
|
||||
const createNotif = group.map(
|
||||
async (e) =>
|
||||
await prisma.donasi_Notif.create({
|
||||
data: {
|
||||
userId: e.authorId,
|
||||
donasi_KabarId: kabarId,
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
if (!createNotif) return { status: 400, message: "Gagal membuat notif" };
|
||||
revalidatePath(RouterDonasi.main_beranda);
|
||||
return {
|
||||
status: 200,
|
||||
message: "Notif terkirim",
|
||||
};
|
||||
}
|
||||
97
src/app_modules/donasi/fun/delete/fin_delete_donasi_by_id.ts
Normal file
97
src/app_modules/donasi/fun/delete/fin_delete_donasi_by_id.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
"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,
|
||||
},
|
||||
});
|
||||
|
||||
if(!delCerita) return {status: 400, message: "Gagal hapus data cerita"}
|
||||
|
||||
const delDonasi = await prisma.donasi.delete({
|
||||
where: {
|
||||
id: donasiId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!delDonasi) return { status: 400, message: "Gagal hapus data donasi" };
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasil hapus",
|
||||
};
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import fs from "fs";
|
||||
import { revalidatePath } from "next/cache";
|
||||
|
||||
export async function Donasi_funDeleteKabar(kabarId: string) {
|
||||
const del = await prisma.donasi_Kabar.delete({
|
||||
const dataKabar = await prisma.donasi_Kabar.findFirst({
|
||||
where: {
|
||||
id: kabarId,
|
||||
},
|
||||
@@ -13,21 +13,37 @@ export async function Donasi_funDeleteKabar(kabarId: string) {
|
||||
imagesId: true,
|
||||
},
|
||||
});
|
||||
if (!del) return { status: 400, message: "Gagal hapus data" };
|
||||
|
||||
const delImg = await prisma.images.delete({
|
||||
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: {
|
||||
id: del.imagesId as any,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
donasi_KabarId: kabarId,
|
||||
},
|
||||
});
|
||||
if (!delNotif) return { status: 400, message: "Gagal hapus notif" };
|
||||
|
||||
if (!delImg) return { status: 400, message: "Gagal hapus gambar" };
|
||||
if (delImg) fs.unlinkSync(`./public/donasi/kabar/${delImg.url}`);
|
||||
revalidatePath("/dev/donasi/list_kabar");
|
||||
const del = await prisma.donasi_Kabar.delete({
|
||||
where: {
|
||||
id: kabarId,
|
||||
},
|
||||
});
|
||||
if (!del) return { status: 400, message: "Gagal hapus data" };
|
||||
|
||||
revalidatePath("/dev/donasi/notif_page");
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasl hapus",
|
||||
|
||||
22
src/app_modules/donasi/fun/get/get_donatur_by_token_id.ts
Normal file
22
src/app_modules/donasi/fun/get/get_donatur_by_token_id.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
|
||||
export async function Donasi_findDonaturByTokenId(
|
||||
donasiId: string,
|
||||
userId: string
|
||||
) {
|
||||
const data = await prisma.donasi_Invoice.count({
|
||||
where: {
|
||||
donasiId: donasiId,
|
||||
authorId: userId,
|
||||
},
|
||||
});
|
||||
|
||||
if (data > 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
"use server"
|
||||
|
||||
import prisma from "@/app/lib/prisma"
|
||||
|
||||
export async function Donasi_getListPencairanDanaById(donasiId:string) {
|
||||
const data = await prisma.donasi_PencairanDana.findMany({
|
||||
where: {
|
||||
donasiId: donasiId
|
||||
}
|
||||
})
|
||||
|
||||
// console.log(data)
|
||||
|
||||
return data
|
||||
}
|
||||
32
src/app_modules/donasi/fun/get/get_notif_by_user_id.ts
Normal file
32
src/app_modules/donasi/fun/get/get_notif_by_user_id.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
|
||||
export async function Donasi_getNotifByUserId(userId: string) {
|
||||
const dataInvoice = await prisma.donasi_Invoice.findFirst({
|
||||
where: {
|
||||
authorId: userId
|
||||
}
|
||||
})
|
||||
|
||||
// console.log(dataInvoice)
|
||||
|
||||
// return null
|
||||
const dataNotif = await prisma.donasi_Notif.findMany({
|
||||
orderBy: {
|
||||
createdAt: "desc"
|
||||
},
|
||||
where: {
|
||||
userId: userId,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
isRead: true,
|
||||
active: true,
|
||||
createdAt: true,
|
||||
donasi_KabarId: true,
|
||||
Donasi_Kabar: true,
|
||||
},
|
||||
});
|
||||
return dataNotif;
|
||||
}
|
||||
@@ -20,6 +20,8 @@ export async function Donasi_getOneById(donasiId: string) {
|
||||
progres: true,
|
||||
terkumpul: true,
|
||||
imagesId: true,
|
||||
namaBank: true,
|
||||
rekening: true,
|
||||
donasiMaster_KategoriId: true,
|
||||
donasiMaster_DurasiId: true,
|
||||
donasiMaster_StatusDonasiId: true,
|
||||
|
||||
@@ -12,6 +12,7 @@ export async function Donasi_getOneInvoiceById(invoiceId: string) {
|
||||
id: true,
|
||||
nominal: true,
|
||||
donasiId: true,
|
||||
createdAt: true,
|
||||
donasiMaster_BankId: true,
|
||||
donasiMaster_StatusInvoiceId: true,
|
||||
Donasi: {
|
||||
|
||||
19
src/app_modules/donasi/fun/get/get_pencairan_dana_by_id.ts
Normal file
19
src/app_modules/donasi/fun/get/get_pencairan_dana_by_id.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
|
||||
export async function Donasi_getTotalPencairanDanaById(donasiId: string) {
|
||||
const data = await prisma.donasi.findFirst({
|
||||
where: {
|
||||
id: donasiId,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
totalPencairan: true,
|
||||
akumulasiPencairan: true,
|
||||
authorId: true
|
||||
},
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
47
src/app_modules/donasi/fun/update/fun_update_invoice.ts
Normal file
47
src/app_modules/donasi/fun/update/fun_update_invoice.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
"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);
|
||||
|
||||
const updateFile = await prisma.donasi_Invoice.update({
|
||||
where: {
|
||||
id: invoiceId,
|
||||
},
|
||||
data: {
|
||||
imagesId: upload.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (!updateFile) return { status: 400, message: "Gagal update gambar" };
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasil upload",
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import { revalidatePath } from "next/cache";
|
||||
|
||||
export async function Donasi_funUpdateNotifById(notifId: string) {
|
||||
const updateNotif = await prisma.donasi_Notif.update({
|
||||
where: {
|
||||
id: notifId,
|
||||
},
|
||||
data: {
|
||||
isRead: true,
|
||||
},
|
||||
});
|
||||
if (!updateNotif) return { status: 400, message: "Update notif gagal" };
|
||||
revalidatePath("/dev/donasi/notif_page");
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasil update notif",
|
||||
};
|
||||
}
|
||||
23
src/app_modules/donasi/fun/update/fun_update_rekening.ts
Normal file
23
src/app_modules/donasi/fun/update/fun_update_rekening.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import { MODEL_DONASI } from "../../model/interface";
|
||||
|
||||
export async function Donasi_funUpdateRekening(data: MODEL_DONASI) {
|
||||
// console.log(data)
|
||||
const res = await prisma.donasi.update({
|
||||
where: {
|
||||
id: data.id,
|
||||
},
|
||||
data: {
|
||||
namaBank: data.namaBank,
|
||||
rekening: data.rekening,
|
||||
},
|
||||
});
|
||||
|
||||
if (!res) return { status: 400, message: "Gagal update rekening" };
|
||||
return {
|
||||
status: 200,
|
||||
message: "Berhasil update",
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user