Fix QC Kak Inno Admin, Fix QC Keano UI User, Fix QC Pak jun tabel apbdes

This commit is contained in:
2025-11-12 17:42:31 +08:00
parent 417a8937f5
commit 9622eb5a9a
354 changed files with 11444 additions and 4012 deletions

View File

@@ -26,7 +26,7 @@ async function beritaCreate(context: Context) {
return {
success: true,
message: "Success create berita",
message: "Sukses menambahkan berita",
data: {
...body,
},

View File

@@ -11,6 +11,6 @@ export default async function kategoriBeritaDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete kategori berita",
message: "Sukses Menghapus kategori berita",
};
}

View File

@@ -22,7 +22,7 @@ async function galleryFotoCreate(context: Context) {
});
return {
success: true,
message: "Success create gallery foto",
message: "Sukses menambahkan gallery foto",
data: {
...body,
},

View File

@@ -21,7 +21,7 @@ async function galleryVideoCreate(context: Context) {
});
return {
success: true,
message: "Success create gallery video",
message: "Sukses menambahkan gallery video",
data: {
...body,
},

View File

@@ -23,7 +23,7 @@ async function createPelayananSuratKeterangan(context: Context) {
});
return {
success: true,
message: "Success create pelayanan surat keterangan",
message: "Sukses menambahkan pelayanan surat keterangan",
data: {
...body,
},

View File

@@ -21,7 +21,7 @@ export default async function pelayananTelunjukSaktiDesaCreate(context: Context)
});
return {
success: true,
message: "Success create pelayanan telunjuk sakti desa",
message: "Sukses menambahkan pelayanan telunjuk sakti desa",
data: {
...body,
},

View File

@@ -24,7 +24,7 @@ export default async function penghargaanCreate(context: Context){
return {
success: true,
message: "Success create penghargaan",
message: "Sukses menambahkan penghargaan",
data: {
...body,
}

View File

@@ -35,7 +35,7 @@ export async function pengumumanCreate(context: Context) {
return {
success: true,
message: "Success create pengumuman",
message: "Sukses menambahkan pengumuman",
data: {
...body,
},

View File

@@ -11,6 +11,6 @@ export default async function kategoriPengumumanDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete kategori pengumuman",
message: "Sukses Menghapus kategori pengumuman",
};
}

View File

@@ -25,7 +25,7 @@ export default async function potensiDesaCreate(context: Context) {
});
return {
success: true,
message: "Success create potensi desa",
message: "Sukses menambahkan potensi desa",
data: {
...body,
},

View File

@@ -11,6 +11,6 @@ export default async function kategoriPotensiDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete kategori potensi",
message: "Sukses Menghapus kategori potensi",
};
}

View File

@@ -21,7 +21,7 @@ export default async function profileMantanPerbekelCreate(context: Context) {
});
return {
success: true,
message: "Success create profile mantan perbekel",
message: "Sukses menambahkan profile mantan perbekel",
data: {
...body,
},

View File

@@ -28,7 +28,7 @@ export default async function demografiPekerjaanCreate(context: Context) {
});
return {
success: true,
message: "Success create demografi pekerjaan",
message: "Sukses menambahkan demografi pekerjaan",
data: created,
};
}

View File

@@ -27,7 +27,7 @@ export default async function grafikJumlahPendudukMiskinCreate(
return {
success: true,
message: "Success create grafik jumlah penduduk miskin",
message: "Sukses menambahkan grafik jumlah penduduk miskin",
data: created,
};
}

View File

@@ -30,7 +30,7 @@ export default async function lowonganKerjaCreate(context: Context) {
return {
success: true,
message: "Success create lowongan kerja",
message: "Sukses menambahkan lowongan kerja",
data: lowonganKerja,
};
}

View File

@@ -61,7 +61,7 @@ export default async function pasarDesaCreate(context: Context) {
return {
success: true,
message: "Success create pasar desa",
message: "Sukses menambahkan pasar desa",
data: result,
};
} catch (error) {

View File

@@ -19,7 +19,7 @@ export default async function kategoriProdukCreate(context: Context) {
});
return {
success: true,
message: "Success create kategori produk",
message: "Sukses menambahkan kategori produk",
data: kategoriProduk
};
}

View File

@@ -25,7 +25,7 @@ const kategoriProdukDelete = async (context: Context) => {
return {
success: true,
message: "Success delete kategori produk",
message: "Sukses Menghapus kategori produk",
data: kategoriProduk,
}
}

View File

@@ -34,7 +34,7 @@ export default async function apbDesaCreate(context: Context) {
});
return {
success: true,
message: "Success create apb desa",
message: "Sukses menambahkan apb desa",
data: created,
};
}

View File

@@ -0,0 +1,67 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function apbDesaFindFirst(context: Context) {
try {
// ambil id dari query (?id=xxx) atau dari params (/api/apb-desa/:id)
const id = context.query?.id || context.params?.id;
// kalau ada ID, cari berdasarkan ID
if (id) {
const data = await prisma.apbDesa.findUnique({
where: { id: String(id), isActive: true },
include: {
pendapatan: true,
belanja: true,
pembiayaan: true,
},
});
if (!data) {
return {
success: false,
message: "APB Desa not found",
data: null,
};
}
return {
success: true,
message: "Success fetch APB Desa by ID",
data,
};
}
// kalau tidak ada ID, ambil data paling baru
const data = await prisma.apbDesa.findFirst({
where: { isActive: true },
include: {
pendapatan: true,
belanja: true,
pembiayaan: true,
},
orderBy: { createdAt: "desc" },
});
if (!data) {
return {
success: false,
message: "No APB Desa data found",
data: null,
};
}
return {
success: true,
message: "Success fetch latest APB Desa",
data,
};
} catch (e) {
console.error("Error in apbDesaFindFirst:", e);
return {
success: false,
message: "Failed to fetch APB Desa data",
data: null,
};
}
}

View File

@@ -4,12 +4,14 @@ import apbDesaFindUnique from "./findUnique";
import apbDesaCreate from "./create";
import apbDesaDelete from "./del";
import apbDesaUpdate from "./updt";
import apbDesaFindFirst from "./findFirst";
const APBDesa = new Elysia({
prefix: "/apbdesa",
tags: ["Ekonomi/Pendapatan Asli Desa/APB Desa"],
})
.get("/find-many", apbDesaFindMany)
.get("/find-first", apbDesaFindFirst)
.get("/:id", async (context) => {
const response = await apbDesaFindUnique(new Request(context.request));
return response;

View File

@@ -22,7 +22,7 @@ export default async function belanjaCreate(context: Context) {
});
return {
success: true,
message: "Success create belanja",
message: "Sukses menambahkan belanja",
data: created,
};
}

View File

@@ -22,7 +22,7 @@ export default async function pembiayaanCreate(context: Context) {
});
return {
success: true,
message: "Success create pembiayaan",
message: "Sukses menambahkan pembiayaan",
data: created,
};
}

View File

@@ -23,7 +23,7 @@ export default async function pendapatanAsliCreate(context: Context) {
});
return {
success: true,
message: "Success create pendapatan asli desa",
message: "Sukses menambahkan pendapatan asli desa",
data: created,
};
}

View File

@@ -35,7 +35,7 @@ export default async function programKemiskinanCreate(context: Context) {
return {
success: true,
message: "Success create program kemiskinan dengan relasi statistik",
message: "Sukses menambahkan program kemiskinan dengan relasi statistik",
data: program,
};
}

View File

@@ -14,6 +14,6 @@ export default async function programKemiskinanDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete program kemiskinan",
message: "Sukses Menghapus program kemiskinan",
};
}

View File

@@ -27,7 +27,7 @@ export default async function sektorUnggulanDesaCreate(context: Context) {
});
return {
success: true,
message: "Success create sektor unggulan desa",
message: "Sukses menambahkan sektor unggulan desa",
data: created,
};
}

View File

@@ -27,7 +27,7 @@ export default async function posisiOrganisasiCreate(context: Context) {
});
return {
success: true,
message: "Success create posisi organisasi",
message: "Sukses menambahkan posisi organisasi",
data: posisiOrganisasi
};
} catch (error) {

View File

@@ -30,7 +30,7 @@ export default async function grafikMenganggurBerdasarkanUsiaCreate(context: Con
});
return {
success: true,
message: "Success create grafik menganggur berdasarkan usia",
message: "Sukses menambahkan grafik menganggur berdasarkan usia",
data: created,
};
}

View File

@@ -33,7 +33,7 @@ export default async function grafikMenganggurBerdasarkanPendidikanCreate(contex
});
return {
success: true,
message: "Success create grafik menganggur berdasarkan pendidikan",
message: "Sukses menambahkan grafik menganggur berdasarkan pendidikan",
data: created,
};
}

View File

@@ -28,7 +28,7 @@ export default async function ajukanIdeInovatifCreate(context: Context){
return {
success: true,
message: "Success create ajukan ide inovatif",
message: "Sukses menambahkan ajukan ide inovatif",
data: {
...body,
}

View File

@@ -22,7 +22,7 @@ export default async function desaDigitalCreate(context: Context){
return {
success: true,
message: "Success create desa digital",
message: "Sukses menambahkan desa digital",
data: {
...body,
}

View File

@@ -22,7 +22,7 @@ export default async function infoTeknoCreate(context: Context){
return {
success: true,
message: "Success create info teknologi",
message: "Sukses menambahkan info teknologi",
data: {
...body,
}

View File

@@ -20,7 +20,7 @@ export default async function jenisLayananCreate(context: Context) {
});
return {
success: true,
message: "Success create jenis layanan",
message: "Sukses menambahkan jenis layanan",
data: jenisLayanan
};
}

View File

@@ -25,7 +25,7 @@ const jenisLayananDelete = async (context: Context) => {
return {
success: true,
message: "Success delete jenis layanan",
message: "Sukses Menghapus jenis layanan",
data: jenisLayanan,
}
}

View File

@@ -31,7 +31,7 @@ export default async function pengaduanMasyarakatCreate(context: Context){
return {
success: true,
message: "Success create pengaduan masyarakat",
message: "Sukses menambahkan pengaduan masyarakat",
data: {
...body,
}

View File

@@ -16,7 +16,7 @@ export default async function jenisPengaduanCreate(context: Context){
return {
success: true,
message: "Success create jenis pengaduan",
message: "Sukses menambahkan jenis pengaduan",
data: {
...body,
}

View File

@@ -25,7 +25,7 @@ const jenisPengaduanDelete = async (context: Context) => {
return {
success: true,
message: "Success delete jenis pengaduan",
message: "Sukses Menghapus jenis pengaduan",
data: jenisPengaduan,
}
}

View File

@@ -22,7 +22,7 @@ export default async function programKreatifCreate(context: Context){
return {
success: true,
message: "Success create program kreatif",
message: "Sukses menambahkan program kreatif",
data: {
...body,
}

View File

@@ -21,7 +21,7 @@ async function createKeamananLingkungan(context: Context) {
});
return {
success: true,
message: "Success create keamanan lingkungan",
message: "Sukses menambahkan keamanan lingkungan",
data: {
...body,
},

View File

@@ -45,7 +45,7 @@ export default async function kontakDaruratKeamananCreate(context: Context) {
return {
success: true,
message: "Success create kontak darurat keamanan",
message: "Sukses menambahkan kontak darurat keamanan",
data: result,
};
} catch (error) {

View File

@@ -18,7 +18,7 @@ export default async function kontakItemCreate(context: Context){
})
return {
success: true,
message: "Success create kontak item",
message: "Sukses menambahkan kontak item",
data: {
...body,
},

View File

@@ -20,7 +20,7 @@ export default async function layananPolsekCreate(context: Context) {
return {
success: true,
message: "Success create layanan polsek",
message: "Sukses menambahkan layanan polsek",
data: layanan,
};
}

View File

@@ -25,7 +25,7 @@ export const layananPolsekDelete = async (context: Context) => {
return {
success: true,
message: "Success delete layanan polsek",
message: "Sukses Menghapus layanan polsek",
data: layanan,
}
}

View File

@@ -25,7 +25,7 @@ const pencegahanKriminalitasCreate = async (context: Context) => {
return {
success: true,
message: "Success create pencegahan kriminalitas",
message: "Sukses menambahkan pencegahan kriminalitas",
data: {
...body,
},

View File

@@ -35,7 +35,7 @@ async function polsekTerdekatCreate(context: Context) {
});
return {
success: true,
message: "Success create polsek terdekat",
message: "Sukses menambahkan polsek terdekat",
data: {
...body,
},

View File

@@ -47,7 +47,7 @@ const menuTipsKeamananDelete = async (context: Context) => {
return {
success: true,
message: "Success delete menu tips keamanan",
message: "Sukses Menghapus menu tips keamanan",
data: deleted,
};
};

View File

@@ -51,7 +51,7 @@ const artikelKesehatanCreate = async (context: Context) => {
return {
success: true,
message: "Success create artikel kesehatan",
message: "Sukses menambahkan artikel kesehatan",
data: artikelKesehatan,
}
}

View File

@@ -18,7 +18,7 @@ export default async function doctorSignCreate(context: Context) {
});
return {
success: true,
message: "Success create doctor sign",
message: "Sukses menambahkan doctor sign",
data: {
...body,
},

View File

@@ -19,7 +19,7 @@ export default async function firstAidCreate(context: Context) {
});
return {
success: true,
message: "Success create first aid",
message: "Sukses menambahkan first aid",
data: {
...body,
},

View File

@@ -18,7 +18,7 @@ export default async function introductionCreate(context: Context) {
});
return {
success: true,
message: "Success create introduction",
message: "Sukses menambahkan introduction",
data: {
...body,
},

View File

@@ -22,7 +22,7 @@ export default async function mythVsFactCreate(context: Context) {
});
return {
success: true,
message: "Success create myth vs fact",
message: "Sukses menambahkan myth vs fact",
data: {
...body,
},

View File

@@ -20,7 +20,7 @@ export default async function preventionCreate(context: Context) {
});
return {
success: true,
message: "Success create prevention",
message: "Sukses menambahkan prevention",
data: {
...body,
},

View File

@@ -19,7 +19,7 @@ export default async function symptomCreate(context: Context) {
});
return {
success: true,
message: "Success create symptom",
message: "Sukses menambahkan symptom",
data: {
...body,
},

View File

@@ -25,7 +25,7 @@ export default async function dokterTenagaMedisCreate(context: Context) {
return {
success: true,
message: "Success create dokter tenaga medis",
message: "Sukses menambahkan dokter tenaga medis",
data: created,
};
}

View File

@@ -30,7 +30,7 @@ export default async function grafikKepuasanCreate(context: Context) {
});
return {
success: true,
message: "Success create grafik kepuasan",
message: "Sukses menambahkan grafik kepuasan",
data: created,
};
}

View File

@@ -49,7 +49,7 @@ const jadwalKegiatanCreate = async (context: Context) => {
})
return {
success: true,
message: "Success create jadwal kegiatan",
message: "Sukses menambahkan jadwal kegiatan",
data: jadwalKegiatan
}
}

View File

@@ -24,7 +24,7 @@ async function createPendaftaran(context: Context) {
});
return {
success: true,
message: "Success create pendaftaran jadwal kegiatan",
message: "Sukses menambahkan pendaftaran jadwal kegiatan",
data: {
...body,
},

View File

@@ -21,7 +21,7 @@ export default async function persentaseKelahiranKematianCreate(context: Context
})
return{
success: true,
message: "Success create persentase kelahiran kematian",
message: "Sukses menambahkan persentase kelahiran kematian",
data: created
}
}

View File

@@ -27,7 +27,7 @@ export default async function kelahiranCreate(context: Context) {
});
return {
success: true,
message: "Success create kelahiran",
message: "Sukses menambahkan kelahiran",
data: created,
};
}

View File

@@ -30,7 +30,7 @@ export default async function kematianCreate(context: Context) {
});
return {
success: true,
message: "Success create kematian",
message: "Sukses menambahkan kematian",
data: created,
};
}

View File

@@ -23,7 +23,7 @@ export default async function infoWabahPenyakitCreate(context: Context) {
})
return {
success: true,
message: "Success create info wabah penyakit",
message: "Sukses menambahkan info wabah penyakit",
data: {
...body,
},

View File

@@ -23,7 +23,7 @@ export default async function kontakDaruratCreate(context: Context) {
})
return {
success: true,
message: "Success create kontak darurat",
message: "Sukses menambahkan kontak darurat",
data: {
...body,
},

View File

@@ -21,7 +21,7 @@ export default async function penangananDaruratCreate(context: Context) {
})
return {
success: true,
message: "Success create penanganan darurat",
message: "Sukses menambahkan penanganan darurat",
data: {
...body,
},

View File

@@ -25,7 +25,7 @@ export default async function posyanduCreate(context: Context) {
})
return {
success: true,
message: "Success create posyandu",
message: "Sukses menambahkan posyandu",
data: {
...body,
},

View File

@@ -23,7 +23,7 @@ export default async function programKesehatanCreate(context: Context) {
})
return {
success: true,
message: "Success create program kesehatan",
message: "Sukses menambahkan program kesehatan",
data: {
...body,
},

View File

@@ -19,7 +19,7 @@ export default async function kategoriDesaAntiKorupsiCreate(context: Context) {
});
return {
success: true,
message: "Success create kategori desa anti korupsi",
message: "Sukses menambahkan kategori desa anti korupsi",
data: kategoriDesaAntiKorupsi
};
}

View File

@@ -11,6 +11,6 @@ export default async function jenisKelaminRespondenDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete jenis kelamin responden",
message: "Sukses Menghapus jenis kelamin responden",
};
}

View File

@@ -11,6 +11,6 @@ export default async function pilihanRatingRespondenDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete pilihan rating responden",
message: "Sukses Menghapus pilihan rating responden",
};
}

View File

@@ -28,6 +28,6 @@ export default async function respondenDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete responden",
message: "Sukses Menghapus responden",
};
}

View File

@@ -11,6 +11,6 @@ export default async function umurRespondenDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete umur responden",
message: "Sukses Menghapus umur responden",
};
}

View File

@@ -19,7 +19,7 @@ export default async function kategoriPrestasiCreate(context: Context) {
});
return {
success: true,
message: "Success create kategori prestasi",
message: "Sukses menambahkan kategori prestasi",
data: kategoriPrestasi
};
}

View File

@@ -25,7 +25,7 @@ const kategoriPrestasiDelete = async (context: Context) => {
return {
success: true,
message: "Success delete kategori prestasi",
message: "Sukses Menghapus kategori prestasi",
data: kategoriPrestasi,
}
}

View File

@@ -21,7 +21,7 @@ export default async function dataLingkunganDesaCreate(context: Context){
return {
success: true,
message: "Success create data lingkungan desa",
message: "Sukses menambahkan data lingkungan desa",
data: {
...body,
}

View File

@@ -19,7 +19,7 @@ export default async function kategoriKegiatanCreate(context: Context) {
});
return {
success: true,
message: "Success create kategori kegiatan",
message: "Sukses menambahkan kategori kegiatan",
data: kategoriKegiatan
};
}

View File

@@ -25,7 +25,7 @@ const kategoriKegiatanDelete = async (context: Context) => {
return {
success: true,
message: "Success delete kategori produk",
message: "Sukses Menghapus kategori produk",
data: kategoriKegiatan,
}
}

View File

@@ -18,7 +18,7 @@ export default async function pengelolaanSampahCreate(context: Context){
return {
success: true,
message: "Success create program kreatif",
message: "Sukses menambahkan program kreatif",
data: {
...body,
}

View File

@@ -27,7 +27,7 @@ export default async function keteranganBankSampahTerdekatCreate(context: Contex
return {
success: true,
message: "Success create keterangan bank sampah terdekat",
message: "Sukses menambahkan keterangan bank sampah terdekat",
data: created,
};
}

View File

@@ -22,7 +22,7 @@ export default async function programPenghijauanCreate(context: Context){
return {
success: true,
message: "Success create program kreatif",
message: "Sukses menambahkan program kreatif",
data: {
...body,
}

View File

@@ -11,6 +11,6 @@ export default async function beasiswaPendaftarDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete beasiswa pendaftar",
message: "Sukses Menghapus beasiswa pendaftar",
};
}

View File

@@ -11,6 +11,6 @@ export default async function keunggulanProgramDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete keunggulan program",
message: "Sukses Menghapus keunggulan program",
};
}

View File

@@ -25,7 +25,7 @@ export default async function jenjangPendidikanDelete(context: Context) {
return {
success: true,
message: "Success delete jenjang pendidikan",
message: "Sukses Menghapus jenjang pendidikan",
data: jenjangPendidikan,
}
}

View File

@@ -11,6 +11,6 @@ export default async function dataPerpustakaanDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete data perpustakaan",
message: "Sukses Menghapus data perpustakaan",
};
}

View File

@@ -11,6 +11,6 @@ export default async function kategoriBukuDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete kategori buku",
message: "Sukses Menghapus kategori buku",
};
}

View File

@@ -11,6 +11,6 @@ export default async function peminjamanBukuDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete peminjaman buku",
message: "Sukses Menghapus peminjaman buku",
};
}

View File

@@ -17,7 +17,7 @@ export default async function daftarInformasiPublikCreate(context: Context) {
})
return {
success: true,
message: "Success create daftar informasi publik",
message: "Sukses menambahkan daftar informasi publik",
data: {
...body,
},

View File

@@ -24,7 +24,7 @@ export default async function grafikBerdasarkanJenisKelaminCreate(context: Conte
});
return {
success: true,
message: "Success create grafik berdasarkan jenis kelamin",
message: "Sukses menambahkan grafik berdasarkan jenis kelamin",
data: created,
};
}

View File

@@ -30,7 +30,7 @@ export async function grafikBerdasarkanUmurCreate(context: Context) {
});
return {
success: true,
message: "Success create grafik berdasarkan umur",
message: "Sukses menambahkan grafik berdasarkan umur",
data: created,
};
}

View File

@@ -24,7 +24,7 @@ export default async function grafikHasilKepuasanMasyarakatCreate(context: Conte
});
return {
success: true,
message: "Success create grafik hasil kepuasan masyarakat",
message: "Sukses menambahkan grafik hasil kepuasan masyarakat",
data: created,
};
}

View File

@@ -11,7 +11,7 @@ export default async function grafikRespondenCreate(context: Context) {
return {
success: true,
message: "Success create grafik berdasarkan responden",
message: "Sukses menambahkan grafik berdasarkan responden",
data: created, // ini termasuk id
};
}

View File

@@ -27,7 +27,7 @@ export default async function posisiOrganisasiCreate(context: Context) {
});
return {
success: true,
message: "Success create posisi organisasi",
message: "Sukses menambahkan posisi organisasi",
data: posisiOrganisasi
};
} catch (error) {

View File

@@ -11,6 +11,6 @@ export default async function roleDelete(context: Context) {
return {
status: 200,
success: true,
message: "Success delete role",
message: "Sukses Menghapus role",
};
}