UI & API Menu Pendidikan & Submenu Bimbingan Belajar Desa

This commit is contained in:
2025-07-28 16:45:36 +08:00
parent b24bcd8019
commit ac0eb926eb
47 changed files with 2178 additions and 211 deletions

View File

@@ -0,0 +1,37 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function fasilitasYangDisediakanFindUnique(
context: Context
) {
try {
const id = context?.params?.slugs?.[0];
// If no ID provided, get the first profile
if (!id) {
const data = await prisma.fasilitasBimbinganBelajarDesa.findFirst();
return {
success: true,
data,
};
}
const data = await prisma.fasilitasBimbinganBelajarDesa.findUniqueOrThrow(
{
where: { id },
}
);
return {
success: true,
data,
};
} catch (error) {
console.error("Error fetching fasilitas yang disediakan:", error);
return {
success: false,
message: error instanceof Error ? error.message : "Unknown error",
};
}
}

View File

@@ -0,0 +1,18 @@
import Elysia, { t } from "elysia";
import fasilitasYangDisediakanFindUnique from "./findUnique";
import fasilitasYangDisediakanUpdate from "./updt";
const FasilitasYangDisediakan = new Elysia({
prefix: "/fasilitasyangdisediakan",
tags: ["Pendidikan/Bimbingan Belajar Desa/Fasilitas Yang Disediakan"]
})
.get("/find-by-id", fasilitasYangDisediakanFindUnique)
.post("/update", fasilitasYangDisediakanUpdate, {
body: t.Object({
id: t.String(),
judul: t.String(),
deskripsi: t.String(),
})
})
export default FasilitasYangDisediakan

View File

@@ -0,0 +1,29 @@
import prisma from "@/lib/prisma";
import { Prisma } from "@prisma/client";
import { Context } from "elysia";
type FormCreate = Prisma.FasilitasBimbinganBelajarDesaGetPayload<{
select: {
id: true;
judul: true;
deskripsi: true;
}
}>
export default async function fasilitasYangDisediakanUpdate(context: Context) {
const body = context.body as FormCreate;
await prisma.fasilitasBimbinganBelajarDesa.update({
where: {
id: body.id
},
data: {
judul: body.judul,
deskripsi: body.deskripsi,
}
})
return {
success: true,
message: "Fasilitas yang disediakan berhasil diupdate",
}
}

View File

@@ -0,0 +1,14 @@
import Elysia from "elysia";
import TujuanProgram from "./tujuan-program";
import LokasiDanJadwal from "./lokasi-dan-jadwal";
import FasilitasYangDisediakan from "./fasilitas-yang-disediakan";
const BimbinganBelajarDesa = new Elysia({
prefix: "/bimbinganbelajardesa",
tags: ["Pendidikan/Bimbingan Belajar Desa"]
})
.use(TujuanProgram)
.use(LokasiDanJadwal)
.use(FasilitasYangDisediakan)
export default BimbinganBelajarDesa

View File

@@ -0,0 +1,37 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function lokasiDanJadwalFindUnique(
context: Context
) {
try {
const id = context?.params?.slugs?.[0];
// If no ID provided, get the first profile
if (!id) {
const data = await prisma.lokasiJadwalBimbinganBelajarDesa.findFirst();
return {
success: true,
data,
};
}
const data = await prisma.lokasiJadwalBimbinganBelajarDesa.findUniqueOrThrow(
{
where: { id },
}
);
return {
success: true,
data,
};
} catch (error) {
console.error("Error fetching lokasi dan jadwal:", error);
return {
success: false,
message: error instanceof Error ? error.message : "Unknown error",
};
}
}

View File

@@ -0,0 +1,18 @@
import Elysia, { t } from "elysia";
import lokasiDanJadwalFindUnique from "./findUnique";
import lokasiDanJadwalUpdate from "./updt";
const LokasiDanJadwal = new Elysia({
prefix: "/lokasidanjadwal",
tags: ["Pendidikan/Bimbingan Belajar Desa/Lokasi dan Jadwal"]
})
.get("/find-by-id", lokasiDanJadwalFindUnique)
.post("/update", lokasiDanJadwalUpdate, {
body: t.Object({
id: t.String(),
judul: t.String(),
deskripsi: t.String(),
})
})
export default LokasiDanJadwal

View File

@@ -0,0 +1,29 @@
import prisma from "@/lib/prisma";
import { Prisma } from "@prisma/client";
import { Context } from "elysia";
type FormCreate = Prisma.LokasiJadwalBimbinganBelajarDesaGetPayload<{
select: {
id: true;
judul: true;
deskripsi: true;
}
}>
export default async function lokasiDanJadwalUpdate(context: Context) {
const body = context.body as FormCreate;
await prisma.lokasiJadwalBimbinganBelajarDesa.update({
where: {
id: body.id
},
data: {
judul: body.judul,
deskripsi: body.deskripsi,
}
})
return {
success: true,
message: "Lokasi dan jadwal berhasil diupdate",
}
}

View File

@@ -0,0 +1,37 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function tujuanProgramFindUnique(
context: Context
) {
try {
const id = context?.params?.slugs?.[0];
// If no ID provided, get the first profile
if (!id) {
const data = await prisma.tujuanBimbinganBelajarDesa.findFirst();
return {
success: true,
data,
};
}
const data = await prisma.tujuanBimbinganBelajarDesa.findUniqueOrThrow(
{
where: { id },
}
);
return {
success: true,
data,
};
} catch (error) {
console.error("Error fetching tujuan program:", error);
return {
success: false,
message: error instanceof Error ? error.message : "Unknown error",
};
}
}

View File

@@ -0,0 +1,18 @@
import Elysia, { t } from "elysia";
import tujuanProgramFindUnique from "./findUnique";
import tujuanProgramUpdate from "./updt";
const TujuanProgram = new Elysia({
prefix: "/tujuanprogram",
tags: ["Pendidikan/Bimbingan Belajar Desa/Tujuan Program"]
})
.get("/find-by-id", tujuanProgramFindUnique)
.post("/update", tujuanProgramUpdate, {
body: t.Object({
id: t.String(),
judul: t.String(),
deskripsi: t.String(),
})
})
export default TujuanProgram

View File

@@ -0,0 +1,29 @@
import prisma from "@/lib/prisma";
import { Prisma } from "@prisma/client";
import { Context } from "elysia";
type FormCreate = Prisma.TujuanBimbinganBelajarDesaGetPayload<{
select: {
id: true;
judul: true;
deskripsi: true;
}
}>
export default async function tujuanProgramUpdate(context: Context) {
const body = context.body as FormCreate;
await prisma.tujuanBimbinganBelajarDesa.update({
where: {
id: body.id
},
data: {
judul: body.judul,
deskripsi: body.deskripsi,
}
})
return {
success: true,
message: "Tujuan program berhasil diupdate",
}
}