Api Admin Menu Desa Sub Menu Layanan Tabs 3 Pelayanan Done
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import Elysia from "elysia";
|
||||
import PelayananSuratKeterangan from "./pelayanan_surat_keterangan";
|
||||
import PelayananTelunjukSaktiDesa from "./pelayanan_telunjuk_sakti_desa";
|
||||
import PelayananPerizinanBerusaha from "./pelayanan_perizinan_berusaha";
|
||||
import PelayananPendudukNonPermanen from "./pelayanan_penduduk_non_permanen";
|
||||
|
||||
const LayananDesa = new Elysia({ prefix: "/layanan", tags: ["Desa/Layanan"] })
|
||||
.use(PelayananSuratKeterangan)
|
||||
.use(PelayananTelunjukSaktiDesa)
|
||||
.use(PelayananPerizinanBerusaha)
|
||||
.use(PelayananPendudukNonPermanen)
|
||||
|
||||
export default LayananDesa
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function pelayananPendudukNonPermanenFindUnique(request: Request) {
|
||||
const url = new URL(request.url);
|
||||
const pathSegments = url.pathname.split("/");
|
||||
const id = pathSegments[pathSegments.length - 1];
|
||||
|
||||
if (!id) {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "ID tidak boleh kosong",
|
||||
},
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
if (typeof id !== "string") {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "ID tidak valid",
|
||||
},
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
const data = await prisma.pelayananPendudukNonPermanen.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "Pelayanan penduduk non permanen tidak ditemukan",
|
||||
},
|
||||
{ status: 404 }
|
||||
);
|
||||
}
|
||||
|
||||
return Response.json(
|
||||
{
|
||||
success: true,
|
||||
message: "Success fetch pelayanan penduduk non permanen by ID",
|
||||
data,
|
||||
},
|
||||
{ status: 200 }
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("Find by ID error:", e);
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "Gagal mengambil pelayanan penduduk non permanen: " + (e instanceof Error ? e.message : 'Unknown error'),
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import pelayananPendudukNonPermanenFindUnique from "./findUnique";
|
||||
import pelayananPendudukNonPermanenUpdate from "./updt";
|
||||
|
||||
const PelayananPendudukNonPermanen = new Elysia({ prefix: "/pelayananpenduduknonpermanen", tags: ["Desa/Layanan/Pelayanan Penduduk Non Permanen"] })
|
||||
.get("/:id", async (context) => {
|
||||
const response = await pelayananPendudukNonPermanenFindUnique(new Request(context.request));
|
||||
return response;
|
||||
})
|
||||
.put("/:id", async (context) => {
|
||||
const response = await pelayananPendudukNonPermanenUpdate(context);
|
||||
return response;
|
||||
},
|
||||
{
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
deskripsi: t.String(),
|
||||
}),
|
||||
})
|
||||
export default PelayananPendudukNonPermanen;
|
||||
@@ -0,0 +1,72 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormUpdate = Prisma.PelayananPendudukNonPermanenGetPayload<{
|
||||
select: {
|
||||
name: true;
|
||||
deskripsi: true;
|
||||
};
|
||||
}>;
|
||||
export default async function pelayananPendudukNonPermanenUpdate(context: Context) {
|
||||
try {
|
||||
const id = context.params?.id;
|
||||
const body = (await context.body) as Omit<FormUpdate, "id">;
|
||||
|
||||
const { name, deskripsi } = body;
|
||||
|
||||
if (!id) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "ID tidak diberikan",
|
||||
}), {
|
||||
status: 400,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
const existing = await prisma.pelayananPendudukNonPermanen.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!existing) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Pelayanan penduduk non permanen tidak ditemukan",
|
||||
}), {
|
||||
status: 404,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const updated = await prisma.pelayananPendudukNonPermanen.update({
|
||||
where: { id },
|
||||
data: { name, deskripsi },
|
||||
});
|
||||
|
||||
return new Response(JSON.stringify({
|
||||
success: true,
|
||||
message: "Success update pelayanan penduduk non permanen",
|
||||
data: updated,
|
||||
}), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
console.error("Update error:", e);
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Gagal mengupdate pelayanan penduduk non permanen: " + (e instanceof Error ? e.message : 'Unknown error'),
|
||||
}), {
|
||||
status: 500,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function pelayananPerizinanBerusahaFindUnique(
|
||||
request: Request
|
||||
) {
|
||||
const url = new URL(request.url);
|
||||
const pathSegments = url.pathname.split("/");
|
||||
const id = pathSegments[pathSegments.length - 1];
|
||||
|
||||
if (!id) {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "ID tidak boleh kosong",
|
||||
},
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
if (typeof id !== "string") {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "ID tidak valid",
|
||||
},
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
const data = await prisma.pelayananPerizinanBerusaha.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message: "Pelayanan perizinan berusaha tidak ditemukan",
|
||||
},
|
||||
{ status: 404 }
|
||||
);
|
||||
}
|
||||
|
||||
return Response.json(
|
||||
{
|
||||
success: true,
|
||||
message: "Success fetch pelayanan perizinan berusaha by ID",
|
||||
data,
|
||||
},
|
||||
{ status: 200 }
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("Find by ID error:", error);
|
||||
return Response.json(
|
||||
{
|
||||
success: false,
|
||||
message:
|
||||
"Gagal mengambil pelayanan perizinan berusaha: " +
|
||||
(error instanceof Error ? error.message : "Unknown error"),
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import pelayananPerizinanBerusahaFindUnique from "./findUnique";
|
||||
import pelayananPerizinanBerusahaUpdate from "./updt";
|
||||
|
||||
const PelayananPerizinanBerusaha = new Elysia({ prefix: "/pelayananperizinanberusaha", tags: ["Desa/Layanan/Pelayanan Perizinan Berusaha"] })
|
||||
.get("/:id", async (context) => {
|
||||
const response = await pelayananPerizinanBerusahaFindUnique(new Request(context.request));
|
||||
return response;
|
||||
})
|
||||
.put("/:id", async (context) => {
|
||||
const response = await pelayananPerizinanBerusahaUpdate(context);
|
||||
return response;
|
||||
},
|
||||
{
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
deskripsi: t.String(),
|
||||
link: t.String(),
|
||||
}),
|
||||
})
|
||||
export default PelayananPerizinanBerusaha;
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormUpdate = Prisma.PelayananPerizinanBerusahaGetPayload<{
|
||||
select: {
|
||||
name: true;
|
||||
deskripsi: true;
|
||||
link: true;
|
||||
};
|
||||
}>;
|
||||
export default async function pelayananPerizinanBerusahaUpdate(context: Context) {
|
||||
try {
|
||||
const id = context.params?.id;
|
||||
const body = (await context.body) as Omit<FormUpdate, "id">;
|
||||
|
||||
const { name, deskripsi, link } = body;
|
||||
|
||||
if (!id) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "ID tidak diberikan",
|
||||
}), {
|
||||
status: 400,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
const existing = await prisma.pelayananPerizinanBerusaha.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!existing) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Pelayanan perizinan berusaha tidak ditemukan",
|
||||
}), {
|
||||
status: 404,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const updated = await prisma.pelayananPerizinanBerusaha.update({
|
||||
where: { id },
|
||||
data: {
|
||||
name,
|
||||
deskripsi,
|
||||
link,
|
||||
},
|
||||
});
|
||||
|
||||
return new Response(JSON.stringify({
|
||||
success: true,
|
||||
message: "Success update pelayanan perizinan berusaha",
|
||||
data: updated,
|
||||
}), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error updating pelayanan perizinan berusaha:", error);
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Terjadi kesalahan saat mengupdate pelayanan perizinan berusaha",
|
||||
}), {
|
||||
status: 500,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormCreate = Prisma.PelayananTelunjukSaktiDesaGetPayload<{
|
||||
select: {
|
||||
name: true;
|
||||
deskripsi: true;
|
||||
link: true;
|
||||
};
|
||||
}>;
|
||||
export default async function pelayananTelunjukSaktiDesaCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
await prisma.pelayananTelunjukSaktiDesa.create({
|
||||
data: {
|
||||
name: body.name,
|
||||
deskripsi: body.deskripsi,
|
||||
link: body.link,
|
||||
},
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create pelayanan telunjuk sakti desa",
|
||||
data: {
|
||||
...body,
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function pelayananTelunjukSaktiDesaDelete(context: Context) {
|
||||
const id = context.params?.id as string;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
status: 400,
|
||||
body: "ID tidak diberikan",
|
||||
};
|
||||
}
|
||||
|
||||
const pelayananTelunjukSaktiDesa = await prisma.pelayananTelunjukSaktiDesa.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!pelayananTelunjukSaktiDesa) {
|
||||
return {
|
||||
status: 404,
|
||||
body: "Pelayanan telunjuk sakti desa tidak ditemukan",
|
||||
};
|
||||
}
|
||||
|
||||
await prisma.pelayananTelunjukSaktiDesa.delete({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: "Pelayanan telunjuk sakti desa berhasil dihapus",
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function pelayananTelunjukSaktiDesaFindMany() {
|
||||
try {
|
||||
const data = await prisma.pelayananTelunjukSaktiDesa.findMany({
|
||||
where: { isActive: true },
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Success fetch pelayanan telunjuk sakti desa",
|
||||
data,
|
||||
};
|
||||
} catch (e) {
|
||||
console.error("Find many error:", e);
|
||||
return {
|
||||
success: false,
|
||||
message: "Failed fetch pelayanan telunjuk sakti desa",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function pelayananTelunjukSaktiDesaFindUnique(request: Request){
|
||||
const url = new URL(request.url);
|
||||
const pathSegments = url.pathname.split('/');
|
||||
const id = pathSegments[pathSegments.length - 1];
|
||||
|
||||
if(!id){
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "ID tidak boleh kosong",
|
||||
}, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
if (typeof id !== 'string') {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "ID tidak valid",
|
||||
}, { status: 400 });
|
||||
}
|
||||
|
||||
const data = await prisma.pelayananTelunjukSaktiDesa.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Pelayanan telunjuk sakti desa tidak ditemukan",
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
message: "Success fetch pelayanan telunjuk sakti desa by ID",
|
||||
data,
|
||||
}, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error("Find by ID error:", error);
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Gagal mengambil pelayanan telunjuk sakti desa: " + (error instanceof Error ? error.message : 'Unknown error'),
|
||||
}, { status: 500 });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import pelayananTelunjukSaktiDesaFindUnique from "./findUnique";
|
||||
import pelayananTelunjukSaktiDesaUpdate from "./updt";
|
||||
import pelayananTelunjukSaktiDesaCreate from "./create";
|
||||
import pelayananTelunjukSaktiDesaDelete from "./del";
|
||||
import pelayananTelunjukSaktiDesaFindMany from "./find-many";
|
||||
|
||||
const pelayananTelunjukSaktiDesa = new Elysia({ prefix: "/pelayanantelunjuksaktidesa", tags: ["Desa/Layanan/Pelayanan Telunjuk Sakti Desa"] })
|
||||
.get("/find-many", pelayananTelunjukSaktiDesaFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await pelayananTelunjukSaktiDesaFindUnique(new Request(context.request));
|
||||
return response;
|
||||
})
|
||||
.put("/:id", async (context) => {
|
||||
const response = await pelayananTelunjukSaktiDesaUpdate(context);
|
||||
return response;
|
||||
},
|
||||
{
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
deskripsi: t.String(),
|
||||
link: t.String(),
|
||||
}),
|
||||
})
|
||||
.post("/create", pelayananTelunjukSaktiDesaCreate, {
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
deskripsi: t.String(),
|
||||
link: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/:id", pelayananTelunjukSaktiDesaDelete)
|
||||
export default pelayananTelunjukSaktiDesa;
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormUpdate = Prisma.PelayananTelunjukSaktiDesaGetPayload<{
|
||||
select: {
|
||||
name: true;
|
||||
deskripsi: true;
|
||||
link: true;
|
||||
};
|
||||
}>;
|
||||
export default async function pelayananTelunjukSaktiDesaUpdate(context: Context) {
|
||||
try {
|
||||
const id = context.params?.id;
|
||||
const body = (await context.body) as Omit<FormUpdate, "id">;
|
||||
|
||||
const { name, deskripsi, link } = body;
|
||||
|
||||
if (!id) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "ID tidak diberikan",
|
||||
}), {
|
||||
status: 400,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const data = await prisma.pelayananTelunjukSaktiDesa.update({
|
||||
where: { id },
|
||||
data: {
|
||||
name,
|
||||
deskripsi,
|
||||
link,
|
||||
},
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Gagal update pelayanan telunjuk sakti desa",
|
||||
}), {
|
||||
status: 404,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const updated = await prisma.pelayananTelunjukSaktiDesa.update({
|
||||
where: { id },
|
||||
data: {
|
||||
name,
|
||||
deskripsi,
|
||||
link,
|
||||
},
|
||||
});
|
||||
|
||||
return new Response(JSON.stringify({
|
||||
success: true,
|
||||
message: "Success update pelayanan telunjuk sakti desa",
|
||||
data: updated,
|
||||
}), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return new Response(JSON.stringify({
|
||||
success: false,
|
||||
message: "Gagal update pelayanan telunjuk sakti desa",
|
||||
}), {
|
||||
status: 500,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user