UI & API Data Kesehatan warga sisa 3 tabs

This commit is contained in:
2025-06-24 17:25:43 +08:00
parent fc08b2e790
commit 27fa7ac0fc
82 changed files with 2455 additions and 395 deletions

View File

@@ -13,19 +13,23 @@ type FormCreate = Prisma.DokterdanTenagaMedisGetPayload<{
async function dokterDantenagamedisCreate(context: Context) {
const body = context.body as FormCreate
await prisma.dokterdanTenagaMedis.create({
const created = await prisma.dokterdanTenagaMedis.create({
data: {
name: body.name,
specialist: body.specialist,
jadwal: body.jadwal,
},
select: {
id: true,
name: true,
specialist: true,
jadwal: true,
}
})
return {
success: true,
message: "Success create dokter dan tenaga medis",
data: {
...body
}
data: created
}
}
export default dokterDantenagamedisCreate

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function dokterDantenagamedisDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.dokterdanTenagaMedis.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.dokterdanTenagaMedis.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,50 @@
import prisma from "@/lib/prisma";
export default async function dokterDantenagamedisFindUnique(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 is required",
},
{ status: 400 }
);
}
try {
if (typeof id !== 'string') {
return Response.json({
success: false,
message: "ID tidak valid",
}, { status: 400 });
}
const data = await prisma.dokterdanTenagaMedis.findUnique({
where: { id },
});
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 });
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 });
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 });
}
}

View File

@@ -1,6 +1,9 @@
import Elysia, { t } from "elysia";
import dokterDantenagamedisFindMany from "./find-many";
import dokterDantenagamedisCreate from "./create";
import dokterDantenagamedisFindUnique from "./findUnique";
import dokterDantenagamedisUpdate from "./updt";
import dokterDantenagamedisDelete from "./del";
const DokterDantenagamedis = new Elysia({
prefix: "/dokterdantenagamedis",
@@ -14,5 +17,24 @@ const DokterDantenagamedis = new Elysia({
jadwal: t.String(),
})
})
.get("/:id", async (context) => {
const response = await dokterDantenagamedisFindUnique(new Request(context.request))
return response
})
.put(":/id", dokterDantenagamedisUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
name: t.String(),
specialist: t.String(),
jadwal: t.String(),
})
})
.delete("/del/:id", dokterDantenagamedisDelete, {
params: t.Object({
id: t.String(),
}),
})
export default DokterDantenagamedis

View File

@@ -0,0 +1,47 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function dokterDantenagamedisUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "ID tidak ditemukan",
};
}
const { nama, spesialis, jadwal } = context.body as {
nama: string;
spesialis: string;
jadwal: string;
};
const existing = await prisma.dokterdanTenagaMedis.findUnique({
where: {
id: id,
},
});
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
};
}
const updated = await prisma.dokterdanTenagaMedis.update({
where: { id },
data: {
name: nama,
specialist: spesialis,
jadwal,
},
});
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
};
}

View File

@@ -11,18 +11,19 @@ type FormCreate = Prisma.FasilitasPendukungGetPayload<{
async function FasilitasPendukungCreate(context: Context){
const body = context.body as FormCreate
await prisma.fasilitasPendukung.create({
const created = await prisma.fasilitasPendukung.create({
data: {
content: body.content
},
select: {
id: true,
content: true,
}
})
return {
success: true,
message: "Success create fasilitas pendukung",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function fasilitasPendukungDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.fasilitasPendukung.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.fasilitasPendukung.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function fasilitasPendukungFindUnique(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 is required",
}, { status: 400 })
}
try {
if (typeof id !== 'string') {
return Response.json({
success: false,
message: "ID must be a string",
}, { status: 400 })
}
const data = await prisma.fasilitasPendukung.findUnique({
where: { id },
})
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 })
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 })
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 })
}
}

View File

@@ -1,16 +1,35 @@
import Elysia, { t } from "elysia";
import fasilitasPendukungFindMany from "./find-many";
import FasilitasPendukungCreate from "./create";
import fasilitasPendukungFindMany from "./find-many";
import fasilitasPendukungFindUnique from "./findUnique";
import fasilitasPendukungUpdate from "./updt";
const FasilitasPendukung = new Elysia({
prefix: "/fasilitaspendukung",
tags: ["Data Kesehatan/Fasilitas Kesehatan/Fasilitas Pendukung"],
})
.get("/:id", async (context) => {
const response = await fasilitasPendukungFindUnique(new Request(context.request))
return response
})
.get("/find-many", fasilitasPendukungFindMany)
.post("/create", FasilitasPendukungCreate, {
body: t.Object({
content: t.String(),
}),
});
})
.put(":/id", fasilitasPendukungUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
content: t.String(),
}),
})
.delete("/del/:id", FasilitasPendukungCreate, {
params: t.Object({
id: t.String(),
}),
})
export default FasilitasPendukung;

View File

@@ -0,0 +1,43 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function fasilitasPendukungUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const {content} = context.body as {
content: string;
}
const existing = await prisma.fasilitasPendukung.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.fasilitasPendukung.update({
where: { id },
data: {
content: content,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -12,19 +12,23 @@ type FormCreate = Prisma.InformasiUmumGetPayload<{
async function informasiUmumCreate(context: Context) {
const body = context.body as FormCreate
await prisma.informasiUmum.create({
const created = await prisma.informasiUmum.create({
data: {
fasilitas: body.fasilitas,
alamat: body.alamat,
jamOperasional: body.jamOperasional,
},
select: {
id: true,
fasilitas: true,
alamat: true,
jamOperasional: true,
}
})
return{
success: true,
message: "Success create informasi umum",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function informasiumumDelete(context: Context){
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.informasiUmum.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.informasiUmum.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function informasiUmumFindUnique(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 is required",
}, { status: 400 })
}
try {
if (typeof id !== 'string') {
return Response.json({
success: false,
message: "ID tidak valid",
}, { status: 400 });
}
const data = await prisma.informasiUmum.findUnique({
where: { id },
});
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 });
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 });
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 });
}
}

View File

@@ -1,11 +1,18 @@
import Elysia, { t } from "elysia";
import informasiUmumFindMany from "./find-many";
import informasiUmumCreate from "./create";
import informasiUmumFindUnique from "./findUnique";
import informasiumumUpdate from "./updt";
import informasiumumDelete from "./del";
const InformasiUmum = new Elysia({
prefix: "/informasiumum",
tags: ["Data Kesehatan/Fasilitas Kesehatan/Informasi Umum"],
})
.get("/:id", async (context) => {
const response = await informasiUmumFindUnique(new Request(context.request))
return response
})
.get("/find-many", informasiUmumFindMany)
.post("/create", informasiUmumCreate, {
body: t.Object({
@@ -13,6 +20,21 @@ const InformasiUmum = new Elysia({
alamat: t.String(),
jamOperasional: t.String(),
}),
});
})
.put(":/id", informasiumumUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
fasilitas: t.String(),
alamat: t.String(),
jamOperasional: t.String(),
}),
})
.delete("/del/:id", informasiumumDelete, {
params: t.Object({
id: t.String(),
}),
})
export default InformasiUmum;

View File

@@ -0,0 +1,47 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function informasiumumUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const {fasilitas, alamat, jamOperasional} = context.body as {
fasilitas: string;
alamat: string;
jamOperasional: string;
}
const existing = await prisma.informasiUmum.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.informasiUmum.update({
where: { id },
data: {
fasilitas: fasilitas,
alamat: alamat,
jamOperasional: jamOperasional,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -11,17 +11,19 @@ type FormCreate = Prisma.LayananUnggulanGetPayload<{
async function layananUnggulanCreate(context: Context) {
const body = context.body as FormCreate
await prisma.layananUnggulan.create({
const created = await prisma.layananUnggulan.create({
data: {
content: body.content
},
select: {
id: true,
content: true,
}
})
return {
success: true,
message: "Success create layanan unggulan",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function layananUnggulanDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.layananUnggulan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.layananUnggulan.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function layananUnggulanFindUnique(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 is required",
}, { status: 400 })
}
try {
if (typeof id !== 'string') {
return Response.json({
success: false,
message: "ID must be a string",
}, { status: 400 })
}
const data = await prisma.layananUnggulan.findUnique({
where: { id },
})
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 })
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 })
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 })
}
}

View File

@@ -1,17 +1,37 @@
import Elysia, { t } from "elysia";
import layananUnggulanCreate from "./create";
import layananUnggulanFindMany from "./find-many";
import layananUnggulanFindUnique from "./findUnique";
import layananUnggulanUpdate from "./updt";
import layananUnggulanDelete from "./del";
const LayananUnggulan = new Elysia({
prefix: "/layananunggulan",
tags: ["Data Kesehatan/Fasilitas Kesehatan/Layanan Unggulan"]
})
.get("/:id", async (context) => {
const response = await layananUnggulanFindUnique(new Request(context.request))
return response
})
.get("/find-many", layananUnggulanFindMany)
.post("/create", layananUnggulanCreate, {
body: t.Object({
content: t.String()
})
})
.put("/:id", layananUnggulanUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
content: t.String(),
})
})
.delete("/del/:id", layananUnggulanDelete, {
params: t.Object({
id: t.String(),
})
})
export default LayananUnggulan

View File

@@ -0,0 +1,43 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function layananUnggulanUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const {content} = context.body as {
content: string;
}
const existing = await prisma.layananUnggulan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.layananUnggulan.update({
where: { id },
data: {
content: content,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -11,17 +11,19 @@ type FormCreate = Prisma.ProsedurPendaftaranGetPayload<{
async function prosedurPendaftaranCreate(context: Context) {
const body = context.body as FormCreate
await prisma.prosedurPendaftaran.create({
const created = await prisma.prosedurPendaftaran.create({
data: {
content: body.content
},
select: {
id: true,
content: true,
}
})
return{
success: true,
message: "Success create prosedur pendaftaran",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function prosedurPendaftaranDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.prosedurPendaftaran.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.prosedurPendaftaran.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,45 @@
import prisma from "@/lib/prisma";
export default async function prosedurPendaftaranFindUnique(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.prosedurPendaftaran.findUnique({
where: { id },
});
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 });
}
return Response.json({
success: true,
data: data,
}, { status: 200 });
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 });
}
}

View File

@@ -1,15 +1,35 @@
import Elysia, { t } from "elysia";
import prosedurPendaftaranFindMany from "./find-many";
import prosedurPendaftaranCreate from "./create";
import prosedurPendaftaranFindUnique from "./findUnique";
import persentaseKelahiranKematianUpdate from "../../persentase_kelahiran_kematian/updt";
import prosedurPendaftaranDelete from "./del";
const ProsedurPendaftaran = new Elysia({
prefix: "/prosedurpendaftaran",
tags: ["Data Kesehatan/Fasilitas Kesehatan/Prosedur Pendaftaran"],
})
.get("/:id", async (context) => {
const response = await prosedurPendaftaranFindUnique(new Request(context.request))
return response
})
.get("/find-many", prosedurPendaftaranFindMany)
.post("/create", prosedurPendaftaranCreate, {
body: t.Object({
content: t.String(),
}),
});
})
.put("/:id", persentaseKelahiranKematianUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
content: t.String(),
})
})
.delete("del/:id", prosedurPendaftaranDelete, {
params: t.Object({
id: t.String(),
})
})
export default ProsedurPendaftaran;

View File

@@ -0,0 +1,43 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function prosedurPendaftaranUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const {content} = context.body as {
content: string;
}
const existing = await prisma.prosedurPendaftaran.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.prosedurPendaftaran.update({
where: { id },
data: {
content: content,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -12,18 +12,21 @@ type FormCreate = Prisma.TarifDanLayananGetPayload<{
async function tarifdanlayananCreate(context: Context) {
const body = context.body as FormCreate
await prisma.tarifDanLayanan.create({
const created = await prisma.tarifDanLayanan.create({
data: {
layanan: body.layanan,
tarif: body.tarif,
},
select: {
id: true,
layanan: true,
tarif: true
}
})
return {
success: true,
message: "Success create tarif dan layanan",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function tarifDanLayananDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.tarifDanLayanan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.tarifDanLayanan.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function tarifDanLayananFindUnique(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 ditemukan',
}, { status: 400 })
}
try {
if (typeof id !== 'string') {
return Response.json({
success: false,
message: 'ID tidak valid',
}, { status: 400 })
}
const data = await prisma.tarifDanLayanan.findUnique({
where: { id },
})
if (!data) {
return Response.json({
success: false,
message: 'Data tidak ditemukan',
}, { status: 404 })
}
return Response.json({
success: true,
data,
}, { status: 200 })
} catch (error) {
console.error('Error fetching data:', error)
return Response.json({
success: false,
message: 'Terjadi kesalahan saat mengambil data',
}, { status: 500 })
}
}

View File

@@ -1,12 +1,19 @@
import Elysia, { t } from "elysia";
import tarifdanlayananFindMany from "./find-many";
import tarifdanlayananCreate from "./create";
import tarifDanLayananFindUnique from "./findUnique";
import tarifDanLayananUpdate from "./updt";
import tarifDanLayananDelete from "./del";
const TarifDanLayanan = new Elysia({
prefix: "/tarifdanlayanan",
tags: ["Data Kesehatan/Fasilitas Kesehatan/Tarif dan Layanan"]
})
.get("/:id", async (context) => {
const response = await tarifDanLayananFindUnique(new Request(context.request))
return response
})
.get("/find-many", tarifdanlayananFindMany)
.post("/create", tarifdanlayananCreate, {
body: t.Object({
@@ -14,5 +21,18 @@ const TarifDanLayanan = new Elysia({
tarif: t.String(),
})
})
.put("/:id", tarifDanLayananUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
layanan: t.String(),
tarif: t.String(),
})
})
.delete("/del/:id", tarifDanLayananDelete, {
params: t.Object({
id: t.String(),
})
})
export default TarifDanLayanan;

View File

@@ -0,0 +1,45 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function tarifDanLayananUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const { layanan, tarif } = context.body as {
layanan: string;
tarif: string;
}
const existing = await prisma.tarifDanLayanan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.tarifDanLayanan.update({
where: { id },
data: {
layanan: layanan,
tarif: tarif,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -11,17 +11,20 @@ type FormCreate = Prisma.GrafikKepuasanGetPayload<{
export default async function grafikKepuasanCreate(context: Context) {
const body = context.body as FormCreate;
await prisma.grafikKepuasan.create({
const created = await prisma.grafikKepuasan.create({
data: {
label: body.label,
jumlah: body.jumlah,
},
select: {
id: true,
label: true,
jumlah: true,
}
});
return {
success: true,
message: "Success create grafik kepuasan",
data: {
...body,
},
data: created,
};
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function grafikKepuasanDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "ID tidak ditemukan"
}
}
const existing = await prisma.grafikKepuasan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.grafikKepuasan.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function grafikKepuasanFindUnique(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.grafikKepuasan.findUnique({
where: { id },
});
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 });
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 });
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 });
}
}

View File

@@ -1,11 +1,18 @@
import Elysia, { t } from "elysia";
import grafikKepuasanCreate from "./create";
import grafikKepuasanFindMany from "./find-many";
import grafikKepuasanFindUnique from "./findUnique";
import grafikKepuasanUpdate from "./updt";
import grafikKepuasanDelete from "./del";
const GrafikKepuasan = new Elysia({
prefix: "/grafikkepuasan",
tags: ["Data Kesehatan/Grafik Kepuasan"]
})
.get("/:id", async (context) => {
const response = await grafikKepuasanFindUnique(new Request(context.request));
return response;
})
.get("/find-many", grafikKepuasanFindMany)
.post("/create", grafikKepuasanCreate, {
body: t.Object({
@@ -13,4 +20,18 @@ const GrafikKepuasan = new Elysia({
jumlah: t.String(),
}),
})
.put("/:id", grafikKepuasanUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
label: t.String(),
jumlah: t.String(),
}),
})
.delete("/del/:id", grafikKepuasanDelete, {
params: t.Object({
id: t.String(),
}),
})
export default GrafikKepuasan

View File

@@ -0,0 +1,45 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function grafikKepuasanUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "ID tidak ditemukan"
}
}
const {label, jumlah} = context.body as {
label: string;
jumlah: string;
}
const existing = await prisma.grafikKepuasan.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.grafikKepuasan.update({
where: { id },
data: {
label,
jumlah,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}

View File

@@ -14,19 +14,24 @@ type FormCreate = Prisma.DataKematian_KelahiranGetPayload<{
export default async function persentaseKelahiranKematianCreate(context: Context) {
const body = context.body as FormCreate
await prisma.dataKematian_Kelahiran.create({
const created = await prisma.dataKematian_Kelahiran.create({
data: {
tahun: body.tahun,
kematianKasar: body.kematianKasar,
kematianBayi: body.kematianBayi,
kelahiranKasar: body.kelahiranKasar,
},
select: {
id: true,
tahun: true,
kematianKasar: true,
kematianBayi: true,
kelahiranKasar: true,
}
})
return{
success: true,
message: "Success create persentase kelahiran kematian",
data: {
...body
}
data: created
}
}

View File

@@ -0,0 +1,36 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function persentaseKelahiranKematianDelete(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const existing = await prisma.dataKematian_Kelahiran.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const deleted = await prisma.dataKematian_Kelahiran.delete({
where: { id },
})
return {
success: true,
message: "Data berhasil dihapus",
data: deleted,
}
}

View File

@@ -0,0 +1,46 @@
import prisma from "@/lib/prisma";
export default async function persentaseKelahiranKematianFindUnique(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.dataKematian_Kelahiran.findUnique({
where: { id },
});
if (!data) {
return Response.json({
success: false,
message: "Data tidak ditemukan",
}, { status: 404 });
}
return Response.json({
success: true,
message: "Berhasil mengambil data berdasarkan ID",
data,
}, { status: 200 });
} catch (error) {
console.error("Error fetching data:", error);
return Response.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
}, { status: 500 });
}
}

View File

@@ -1,11 +1,18 @@
import Elysia, { t } from "elysia";
import persentaseKelahiranKematianCreate from "./create";
import persentaseKelahiranKematianFindMany from "./find-many";
import persentaseKelahiranKematianFindUnique from "./findUnique";
import persentaseKelahiranKematianUpdate from "./updt";
import persentaseKelahiranKematianDelete from "./del";
const PersentaseKelahiranKematian = new Elysia({
prefix: "/persentasekelahiran",
tags: ["Data Kesehatan/Persentase Kelahiran Kematian"],
})
.get("/:id", async (context) => {
const response = await persentaseKelahiranKematianFindUnique(new Request(context.request))
return response
})
.get("/find-many", persentaseKelahiranKematianFindMany)
.post("/create", persentaseKelahiranKematianCreate, {
body: t.Object({
@@ -15,5 +22,20 @@ const PersentaseKelahiranKematian = new Elysia({
kelahiranKasar: t.String(),
}),
})
.put("/:id", persentaseKelahiranKematianUpdate, {
params: t.Object({
id: t.String(),
}),
body: t.Object({
tahun: t.String(),
kematianKasar: t.String(),
kematianBayi: t.String(),
kelahiranKasar: t.String(),
}),
})
.delete("/del/:id", persentaseKelahiranKematianDelete, {
params: t.Object({
id: t.String(),
}),
})
export default PersentaseKelahiranKematian;

View File

@@ -0,0 +1,49 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
export default async function persentaseKelahiranKematianUpdate(context: Context) {
const id = context.params?.id;
if (!id) {
return {
success: false,
message: "Id tidak ditemukan",
}
}
const {tahun, kematianKasar, kematianBayi, kelahiranKasar} = context.body as {
tahun: string;
kematianKasar: string;
kematianBayi: string;
kelahiranKasar: string;
}
const existing = await prisma.dataKematian_Kelahiran.findUnique({
where: {
id: id,
},
})
if (!existing) {
return {
success: false,
message: "Data tidak ditemukan",
}
}
const updated = await prisma.dataKematian_Kelahiran.update({
where: { id },
data: {
tahun,
kematianKasar,
kematianBayi,
kelahiranKasar,
},
})
return {
success: true,
message: "Data berhasil diupdate",
data: updated,
}
}