From 3cd6fcbd81c3457923869499857bb8e1c9690952 Mon Sep 17 00:00:00 2001 From: nico Date: Wed, 1 Apr 2026 15:24:12 +0800 Subject: [PATCH] fix(api): clean up redundant /api prefixes and fix swagger documentation --- src/app/api/[[...slugs]]/_lib/desa/index.ts | 2 +- .../api/[[...slugs]]/_lib/ekonomi/index.ts | 2 +- .../[[...slugs]]/_lib/fileStorage/index.ts | 2 +- .../api/[[...slugs]]/_lib/inovasi/index.ts | 2 +- .../api/[[...slugs]]/_lib/keamanan/index.ts | 2 +- .../api/[[...slugs]]/_lib/kesehatan/index.ts | 2 +- .../[[...slugs]]/_lib/landing_page/index.ts | 2 +- .../api/[[...slugs]]/_lib/lingkungan/index.ts | 2 +- .../api/[[...slugs]]/_lib/pendidikan/index.ts | 2 +- src/app/api/[[...slugs]]/_lib/ppid/index.ts | 2 +- src/app/api/[[...slugs]]/_lib/search/index.ts | 2 +- src/app/api/[[...slugs]]/_lib/user/index.ts | 2 +- .../api/[[...slugs]]/_lib/user/role/index.ts | 2 +- src/app/api/[[...slugs]]/route.ts | 43 +++++++++++-------- 14 files changed, 39 insertions(+), 30 deletions(-) diff --git a/src/app/api/[[...slugs]]/_lib/desa/index.ts b/src/app/api/[[...slugs]]/_lib/desa/index.ts index 73e8b354..c6d4b754 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/index.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/index.ts @@ -15,7 +15,7 @@ import AjukanPermohonan from "./layanan/ajukan_permohonan"; import Musik from "./musik"; -const Desa = new Elysia({ prefix: "/api/desa", tags: ["Desa"] }) +const Desa = new Elysia({ prefix: "/desa", tags: ["Desa"] }) .use(Berita) .use(Pengumuman) .use(ProfileDesa) diff --git a/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts b/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts index 05e511c6..456b87c7 100644 --- a/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts +++ b/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts @@ -13,7 +13,7 @@ import PendapatanAsliDesa from "./pendapatan-asli-desa"; import StrukturOrganisasi from "./struktur-bumdes"; const Ekonomi = new Elysia({ - prefix: "/api/ekonomi", + prefix: "/ekonomi", tags: ["Ekonomi"], }) .use(PasarDesa) diff --git a/src/app/api/[[...slugs]]/_lib/fileStorage/index.ts b/src/app/api/[[...slugs]]/_lib/fileStorage/index.ts index 45adedf6..642f93bd 100644 --- a/src/app/api/[[...slugs]]/_lib/fileStorage/index.ts +++ b/src/app/api/[[...slugs]]/_lib/fileStorage/index.ts @@ -5,7 +5,7 @@ import { fileStorageFindMany } from "./_lib/findMany"; import fileStorageDelete from "./_lib/del"; const FileStorage = new Elysia({ - prefix: "/api/fileStorage", + prefix: "/fileStorage", tags: ["FileStorage"], }) .post("/create", fileStorageCreate, { diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/index.ts b/src/app/api/[[...slugs]]/_lib/inovasi/index.ts index 952a3835..8f27b58a 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/index.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/index.ts @@ -8,7 +8,7 @@ import LayananOnlineDesa from "./layanan-online-desa"; import MitraKolaborasi from "./kolaborasi-inovasi/mitra-kolaborasi"; const Inovasi = new Elysia({ - prefix: "/api/inovasi", + prefix: "/inovasi", tags: ["Inovasi"], }) .use(DesaDigital) diff --git a/src/app/api/[[...slugs]]/_lib/keamanan/index.ts b/src/app/api/[[...slugs]]/_lib/keamanan/index.ts index 723134bb..428de450 100644 --- a/src/app/api/[[...slugs]]/_lib/keamanan/index.ts +++ b/src/app/api/[[...slugs]]/_lib/keamanan/index.ts @@ -9,7 +9,7 @@ import KontakDaruratKeamanan from "./kontak-darurat-keamanan"; import KontakItem from "./kontak-darurat-keamanan/kontak-item"; import LayananPolsek from "./polsek-terdekat/layanan-polsek"; -const Keamanan = new Elysia({ prefix: "/api/keamanan", tags: ["Keamanan"] }) +const Keamanan = new Elysia({ prefix: "/keamanan", tags: ["Keamanan"] }) .use(KeamananLingkungan) .use(PolsekTerdekat) .use(PencegahanKriminalitas) diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/index.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/index.ts index 19f978d7..ccf09347 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/index.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/index.ts @@ -24,7 +24,7 @@ import TarifLayanan from "./data_kesehatan_warga/fasilitas_kesehatan/tarif-layan const Kesehatan = new Elysia({ - prefix: "/api/kesehatan", + prefix: "/kesehatan", tags: ["Kesehatan"], }) .use(PersentaseKelahiranKematian) diff --git a/src/app/api/[[...slugs]]/_lib/landing_page/index.ts b/src/app/api/[[...slugs]]/_lib/landing_page/index.ts index 27238a4e..8fca0588 100644 --- a/src/app/api/[[...slugs]]/_lib/landing_page/index.ts +++ b/src/app/api/[[...slugs]]/_lib/landing_page/index.ts @@ -14,7 +14,7 @@ import UmurResponden from "./indeks_kepuasan/umur-responden"; import Responden from "./indeks_kepuasan/responden"; const LandingPage = new Elysia({ - prefix: "/api/landingpage", + prefix: "/landingpage", tags: ["Landing Page/Profile"] }) diff --git a/src/app/api/[[...slugs]]/_lib/lingkungan/index.ts b/src/app/api/[[...slugs]]/_lib/lingkungan/index.ts index 44beaf33..f082f6dd 100644 --- a/src/app/api/[[...slugs]]/_lib/lingkungan/index.ts +++ b/src/app/api/[[...slugs]]/_lib/lingkungan/index.ts @@ -9,7 +9,7 @@ import KategoriKegiatan from "./gotong-royong/kategori-kegiatan"; import KeteranganBankSampahTerdekat from "./pengelolaan-sampah/keterangan-bank-sampah"; const Lingkungan = new Elysia({ - prefix: "/api/lingkungan", + prefix: "/lingkungan", tags: ["Lingkungan"], }) diff --git a/src/app/api/[[...slugs]]/_lib/pendidikan/index.ts b/src/app/api/[[...slugs]]/_lib/pendidikan/index.ts index ebbc947f..8669fe3e 100644 --- a/src/app/api/[[...slugs]]/_lib/pendidikan/index.ts +++ b/src/app/api/[[...slugs]]/_lib/pendidikan/index.ts @@ -8,7 +8,7 @@ import Beasiswa from "./beasiswa-desa"; import PerpustakaanDigital from "./perpustakaan-digital"; const Pendidikan = new Elysia({ - prefix: "/api/pendidikan", + prefix: "/pendidikan", tags: ["Pendidikan"] }) diff --git a/src/app/api/[[...slugs]]/_lib/ppid/index.ts b/src/app/api/[[...slugs]]/_lib/ppid/index.ts index 94ae5516..26ca16a8 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/index.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/index.ts @@ -14,7 +14,7 @@ import GrafikHasilKepuasanMasyarakat from "./ikm/grafik_hasil_kepuasan_masyaraka -const PPID = new Elysia({ prefix: "/api/ppid", tags: ["PPID"] }) +const PPID = new Elysia({ prefix: "/ppid", tags: ["PPID"] }) .use(ProfilePPID) .use(DaftarInformasiPublik) .use(GrafikHasilKepuasanMasyarakat) diff --git a/src/app/api/[[...slugs]]/_lib/search/index.ts b/src/app/api/[[...slugs]]/_lib/search/index.ts index 83910fab..99055d09 100644 --- a/src/app/api/[[...slugs]]/_lib/search/index.ts +++ b/src/app/api/[[...slugs]]/_lib/search/index.ts @@ -2,7 +2,7 @@ import Elysia from "elysia"; import searchFindMany from "./findMany"; const Search = new Elysia({ - prefix: "/api/search", + prefix: "/search", tags: ["Search"], }) .get("/findMany", searchFindMany); diff --git a/src/app/api/[[...slugs]]/_lib/user/index.ts b/src/app/api/[[...slugs]]/_lib/user/index.ts index 5e6aa75c..94da13d5 100644 --- a/src/app/api/[[...slugs]]/_lib/user/index.ts +++ b/src/app/api/[[...slugs]]/_lib/user/index.ts @@ -7,7 +7,7 @@ import userDelete from "./del"; // `delete` nggak boleh jadi nama file JS langsu import userUpdate from "./updt"; import userDeleteAccount from "./delUser"; -const User = new Elysia({ prefix: "/api/user" }) +const User = new Elysia({ prefix: "/user" }) .get("/findMany", userFindMany) .get("/findUnique/:id", userFindUnique) .put("/del/:id", userDelete, { diff --git a/src/app/api/[[...slugs]]/_lib/user/role/index.ts b/src/app/api/[[...slugs]]/_lib/user/role/index.ts index 8fb78ac2..30a2991c 100644 --- a/src/app/api/[[...slugs]]/_lib/user/role/index.ts +++ b/src/app/api/[[...slugs]]/_lib/user/role/index.ts @@ -6,7 +6,7 @@ import roleFindUnique from "./findUnique"; import roleUpdate from "./updt"; const Role = new Elysia({ - prefix: "/api/role", + prefix: "/role", tags: ["User / Role"], }) diff --git a/src/app/api/[[...slugs]]/route.ts b/src/app/api/[[...slugs]]/route.ts index d94bb7ab..f477058f 100644 --- a/src/app/api/[[...slugs]]/route.ts +++ b/src/app/api/[[...slugs]]/route.ts @@ -67,7 +67,7 @@ async function layanan() { } const Utils = new Elysia({ - prefix: "/api/utils", + prefix: "/utils", tags: ["Utils"], }).get("/version", async () => { const packageJson = await fs.readFile( @@ -82,7 +82,17 @@ if (!process.env.WIBU_UPLOAD_DIR) throw new Error("WIBU_UPLOAD_DIR is not defined"); const ApiServer = new Elysia() - .use(swagger({ path: "/api/docs" })) + .use( + swagger({ + path: "/api/docs", + documentation: { + info: { + title: "Desa Darmasaba API Documentation", + version: "1.0.0", + }, + }, + }), + ) .use( staticPlugin({ assets: UPLOAD_DIR, @@ -90,21 +100,6 @@ const ApiServer = new Elysia() }), ) .use(cors(corsConfig)) - .use(Utils) - .use(FileStorage) - .use(LandingPage) - .use(PPID) - .use(Desa) - .use(Kesehatan) - .use(Keamanan) - .use(Ekonomi) - .use(Inovasi) - .use(Lingkungan) - .use(Pendidikan) - .use(User) - .use(Role) - .use(Search) - .onError(({ code }) => { if (code === "NOT_FOUND") { return { @@ -115,6 +110,20 @@ const ApiServer = new Elysia() }) .group("/api", (app) => app + .use(Utils) + .use(FileStorage) + .use(LandingPage) + .use(PPID) + .use(Desa) + .use(Kesehatan) + .use(Keamanan) + .use(Ekonomi) + .use(Inovasi) + .use(Lingkungan) + .use(Pendidikan) + .use(User) + .use(Role) + .use(Search) .get("/layanan", layanan) .get("/potensi", getPotensi) .get(