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

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

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",
}
}

View File

@@ -1,5 +1,7 @@
import Elysia from "elysia";
import InfoSekolahPAUD from "./info-sekolah-paud";
import ProgramPendidikanAnak from "./program-pendidikan-anak";
import BimbinganBelajarDesa from "./bimbingan-belajar-desa";
const Pendidikan = new Elysia({
prefix: "/api/pendidikan",
@@ -7,5 +9,7 @@ const Pendidikan = new Elysia({
})
.use(InfoSekolahPAUD)
.use(ProgramPendidikanAnak)
.use(BimbinganBelajarDesa)
export default Pendidikan;

View File

@@ -0,0 +1,12 @@
import Elysia from "elysia";
import ProgramUnggulan from "./program-unggulan";
import TujuanProgram from "./tujuan-program";
const ProgramPendidikanAnak = new Elysia({
prefix: "/programpendidikananak",
tags: ["Pendidikan/Program Pendidikan Anak"]
})
.use(ProgramUnggulan)
.use(TujuanProgram)
export default ProgramPendidikanAnak

View File

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

View File

@@ -0,0 +1,18 @@
import Elysia, { t } from "elysia";
import programUnggulanFindUnique from "./findUnique";
import programUnggulanUpdate from "./updt";
const ProgramUnggulan = new Elysia({
prefix: "/programunggulan",
tags: ["Pendidikan/Program Pendidikan Anak/Program Unggulan"]
})
.get("/find-by-id", programUnggulanFindUnique)
.post("/update", programUnggulanUpdate, {
body: t.Object({
id: t.String(),
judul: t.String(),
deskripsi: t.String(),
})
})
export default ProgramUnggulan

View File

@@ -0,0 +1,29 @@
import prisma from "@/lib/prisma";
import { Prisma } from "@prisma/client";
import { Context } from "elysia";
type FormCreate = Prisma.ProgramUnggulanGetPayload<{
select: {
id: true;
judul: true;
deskripsi: true;
}
}>
export default async function programUnggulanUpdate(context: Context) {
const body = context.body as FormCreate;
await prisma.programUnggulan.update({
where: {
id: body.id
},
data: {
judul: body.judul,
deskripsi: body.deskripsi,
}
})
return {
success: true,
message: "Program unggulan 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.tujuanProgram.findFirst();
return {
success: true,
data,
};
}
const data = await prisma.tujuanProgram.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/Program Pendidikan Anak/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.TujuanProgramGetPayload<{
select: {
id: true;
judul: true;
deskripsi: true;
}
}>
export default async function tujuanProgramUpdate(context: Context) {
const body = context.body as FormCreate;
await prisma.tujuanProgram.update({
where: {
id: body.id
},
data: {
judul: body.judul,
deskripsi: body.deskripsi,
}
})
return {
success: true,
message: "Tujuan program berhasil diupdate",
}
}