Create dan Update

# feat
- tampilan user
- tampilan admin
## No Issue
This commit is contained in:
2024-01-02 16:35:55 +08:00
parent f02e907bc5
commit 4fc158bdc5
92 changed files with 2357 additions and 851 deletions

View File

@@ -6,6 +6,7 @@ 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;
@@ -17,7 +18,7 @@ export async function Donasi_funCreate(req: MODEL_DONASI, file: FormData) {
donasiMaster_DurasiId: body.donasiMaster_DurasiId,
donasiMaster_KategoriId: body.donasiMaster_KategoriId,
imagesId: body.imagesId,
authorId: body.authorId
authorId: body.authorId,
},
});
@@ -63,6 +64,7 @@ export async function Donasi_funCreate(req: MODEL_DONASI, file: FormData) {
});
if (!dataCerita) return { status: 400, message: "Gagal simpan data cerita" };
revalidatePath("/dev/donasi/main/galang_dana");
return {
status: 201,
message: "Data donasi tersimpan",

View File

@@ -2,7 +2,7 @@
import fs from "fs";
import prisma from "@/app/lib/prisma";
import { MODEL_DONASI_TEMPORARY } from "../../model/interface";
import { MODEL_DONASI, MODEL_DONASI_TEMPORARY } from "../../model/interface";
import _ from "lodash";
import { v4 } from "uuid";
@@ -14,7 +14,7 @@ interface Model_Temporary {
}
export default async function Donasi_funCreateTemporary(
data: Model_Temporary,
data: MODEL_DONASI,
file: FormData
) {
// console.log(data, "ini data")
@@ -37,16 +37,17 @@ export default async function Donasi_funCreateTemporary(
if (!uploadTemporary) return { status: 400, message: "Gagal upload gambar" };
const uploadFolder = Buffer.from(await dataImage.arrayBuffer());
fs.writeFileSync(`./public/donasi/image/${uploadTemporary.url}`, uploadFolder);
fs.writeFileSync(
`./public/donasi/image/${uploadTemporary.url}`,
uploadFolder
);
const res = await prisma.donasi_TemporaryCreate.create({
data: {
title: data.title,
target: data.target,
donasiMaster_KategoriId: data.kategoriId,
donasiMaster_DurasiId: data.durasiId,
donasiMaster_KategoriId: data.donasiMaster_KategoriId,
donasiMaster_DurasiId: data.donasiMaster_DurasiId,
imagesId: uploadTemporary.id,
},
});
@@ -56,6 +57,6 @@ export default async function Donasi_funCreateTemporary(
return {
status: 201,
message: "Berhasil membuat donasi",
donasiId: res.id
donasiId: res.id,
};
}

View File

@@ -0,0 +1,18 @@
"use server";
import prisma from "@/app/lib/prisma";
export default async function Donasi_getCeritaByDonasiId(donasiId: string) {
const data = await prisma.donasi_Cerita.findFirst({
where: {
donasiId: donasiId,
},
select: {
id: true,
pembukaan: true,
cerita: true,
imageCeritaDonasi: true,
},
});
return data;
}

View File

@@ -0,0 +1,61 @@
"use server";
import prisma from "@/app/lib/prisma";
/**
*
* @param authorId string
* @param status string | masukan angka 1 - 4
* @returns List data donasi by status
*/
export default async function Donasi_getByStatus(
authorId: string,
status: string
) {
if (status === "1") {
const getReview = await prisma.donasi.findMany({
where: {
authorId: authorId,
donasiMaster_StatusDonasiId: "1",
},
});
return getReview;
}
if (status === "2") {
const getReview = await prisma.donasi.findMany({
where: {
authorId: authorId,
donasiMaster_StatusDonasiId: "2",
},
});
return getReview;
}
if (status === "3") {
const getReview = await prisma.donasi.findMany({
where: {
authorId: authorId,
donasiMaster_StatusDonasiId: "3",
},
});
return getReview;
}
if (status === "4") {
const getReview = await prisma.donasi.findMany({
where: {
authorId: authorId,
donasiMaster_StatusDonasiId: "4",
},
});
return getReview;
}
if (status === undefined) {
return {
status: 400,
message: "Not Found",
};
}
}

View File

@@ -0,0 +1,33 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getOneById(donasiId: string) {
const data = await prisma.donasi.findFirst({
where: {
id: donasiId,
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: 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,
},
});
return data;
}

View File

@@ -0,0 +1,28 @@
"use server";
import prisma from "@/app/lib/prisma";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
export async function Donasi_funGantiStatus(
donasiId: string,
statusId: string
) {
const data = await prisma.donasi.update({
where: {
id: donasiId,
},
data: {
donasiMaster_StatusDonasiId: statusId,
},
});
if (!data) return { status: 400, message: "Data tidak ditemukan" };
revalidatePath(RouterDonasi.main_galang_dana)
return {
status: 200,
message: "Status berhasil diganti",
};
}

View File

@@ -0,0 +1,59 @@
"use server";
import _ from "lodash";
import { MODEL_CERITA_DONASI } from "../../model/interface";
import { v4 } from "uuid";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
import fs from "fs";
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({
where: {
id: data.imagesId,
},
data: {
url: fileRandomName,
},
});
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
);
}
const update = await prisma.donasi_Cerita.update({
where: {
id: data.id,
},
data: {
pembukaan: data.pembukaan,
cerita: data.cerita,
},
});
if (!update) return { status: 400, message: "Gagal update cerita" };
revalidatePath("/dev/donasi/detail/detail_draft");
return {
status: 200,
message: "Berhasil update cerita",
};
}

View File

@@ -0,0 +1,71 @@
"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";
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({
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,
},
data: {
url: fileRandomName,
},
});
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);
}
const update = await prisma.donasi.update({
where: {
id: data.id,
},
data: {
donasiMaster_KategoriId: data.donasiMaster_KategoriId,
donasiMaster_DurasiId: data.donasiMaster_DurasiId,
title: data.title,
target: data.target,
},
});
if (!update) return { status: 400, message: "Gagal update" };
revalidatePath("/dev/donasi/detail/detail_draft");
return {
status: 200,
message: "Berhasil update",
};
}