UI & API Menu Ekonomi, Submenu Jumlah Penduduk usia yang menganggur
This commit is contained in:
@@ -4,6 +4,8 @@ import LowonganKerja from "./lowongan-kerja";
|
||||
import ProgramKemiskinan from "./program-kemiskinan";
|
||||
import KategoriProduk from "./pasar-desa/kategori-produk";
|
||||
import StrukturOrganisasi from "./struktur-organisasi";
|
||||
import GrafikUsiaKerjaYangMenganggur from "./usia-kerja-yang-menganggur";
|
||||
import GrafikMenganggurBerdasarkanPendidikan from "./usia-kerja-yang-menganggur/pengangguran-berdasrkan-pendidikan";
|
||||
|
||||
const Ekonomi = new Elysia({
|
||||
prefix: "/api/ekonomi",
|
||||
@@ -14,5 +16,7 @@ const Ekonomi = new Elysia({
|
||||
.use(LowonganKerja)
|
||||
.use(ProgramKemiskinan)
|
||||
.use(StrukturOrganisasi)
|
||||
.use(GrafikUsiaKerjaYangMenganggur)
|
||||
.use(GrafikMenganggurBerdasarkanPendidikan)
|
||||
|
||||
export default Ekonomi
|
||||
@@ -0,0 +1,36 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormCreate = Prisma.GrafikMenganggurBerdasarkanUsiaGetPayload<{
|
||||
select: {
|
||||
usia18_25: true;
|
||||
usia26_35: true;
|
||||
usia36_45: true;
|
||||
usia46_keatas: true;
|
||||
}
|
||||
}>
|
||||
export default async function grafikMenganggurBerdasarkanUsiaCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
const created = await prisma.grafikMenganggurBerdasarkanUsia.create({
|
||||
data: {
|
||||
usia18_25: body.usia18_25,
|
||||
usia26_35: body.usia26_35,
|
||||
usia36_45: body.usia36_45,
|
||||
usia46_keatas: body.usia46_keatas,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
usia18_25: true,
|
||||
usia26_35: true,
|
||||
usia36_45: true,
|
||||
usia46_keatas: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik menganggur berdasarkan usia",
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import { Context } from "elysia";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanUsiaDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.grafikMenganggurBerdasarkanUsia.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.grafikMenganggurBerdasarkanUsia.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Delete error:", error);
|
||||
return {
|
||||
success: false,
|
||||
message: "Gagal menghapus data: " + (error instanceof Error ? error.message : 'Unknown error'),
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanUsiaFindMany() {
|
||||
const res = await prisma.grafikMenganggurBerdasarkanUsia.findMany();
|
||||
return {
|
||||
data: res
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanUsiaFindUnique(
|
||||
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.grafikMenganggurBerdasarkanUsia.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
message: "Data berhasil ditemukan",
|
||||
data,
|
||||
}, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error("Find unique error:", error);
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Gagal menemukan data: " + (error instanceof Error ? error.message : 'Unknown error'),
|
||||
data: null,
|
||||
}, { status: 500 });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import grafikMenganggurBerdasarkanUsiaFindMany from "./findMany";
|
||||
import grafikMenganggurBerdasarkanUsiaFindUnique from "./findUnique";
|
||||
import grafikMenganggurBerdasarkanUsiaUpdate from "./updt";
|
||||
import grafikMenganggurBerdasarkanUsiaCreate from "./create";
|
||||
import grafikMenganggurBerdasarkanUsiaDelete from "./del";
|
||||
|
||||
const GrafikUsiaKerjaYangMenganggur = new Elysia({prefix: "/grafikusiakerjayangmenganggur", tags: ["Ekonomi/Jumlah Penduduk Usia Kerja Yang Menganggur"]})
|
||||
.get("/find-many", grafikMenganggurBerdasarkanUsiaFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikMenganggurBerdasarkanUsiaFindUnique(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikMenganggurBerdasarkanUsiaUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
usia18_25: t.String(),
|
||||
usia26_35: t.String(),
|
||||
usia36_45: t.String(),
|
||||
usia46_keatas: t.String(),
|
||||
}),
|
||||
})
|
||||
.post("/create", grafikMenganggurBerdasarkanUsiaCreate, {
|
||||
body: t.Object({
|
||||
usia18_25: t.String(),
|
||||
usia26_35: t.String(),
|
||||
usia36_45: t.String(),
|
||||
usia46_keatas: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikMenganggurBerdasarkanUsiaDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
|
||||
export default GrafikUsiaKerjaYangMenganggur;
|
||||
@@ -0,0 +1,39 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormCreate = Prisma.GrafikMenganggurBerdasarkanPendidikanGetPayload<{
|
||||
select: {
|
||||
SD: true;
|
||||
SMP: true;
|
||||
SMA: true;
|
||||
D3: true;
|
||||
S1: true;
|
||||
}
|
||||
}>
|
||||
export default async function grafikMenganggurBerdasarkanPendidikanCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
const created = await prisma.grafikMenganggurBerdasarkanPendidikan.create({
|
||||
data: {
|
||||
SD: body.SD,
|
||||
SMP: body.SMP,
|
||||
SMA: body.SMA,
|
||||
D3: body.D3,
|
||||
S1: body.S1,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
SD: true,
|
||||
SMP: true,
|
||||
SMA: true,
|
||||
D3: true,
|
||||
S1: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik menganggur berdasarkan pendidikan",
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import { Context } from "elysia";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanPendidikanDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.grafikMenganggurBerdasarkanPendidikan.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.grafikMenganggurBerdasarkanPendidikan.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Delete error:", error);
|
||||
return {
|
||||
success: false,
|
||||
message: "Gagal menghapus data: " + (error instanceof Error ? error.message : 'Unknown error'),
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanPendidikanFindMany() {
|
||||
const res = await prisma.grafikMenganggurBerdasarkanPendidikan.findMany();
|
||||
return {
|
||||
data: res
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanPendidikanFindUnique(
|
||||
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.grafikMenganggurBerdasarkanPendidikan.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
message: "Data berhasil ditemukan",
|
||||
data,
|
||||
}, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error("Find unique error:", error);
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Gagal menemukan data: " + (error instanceof Error ? error.message : 'Unknown error'),
|
||||
data: null,
|
||||
}, { status: 500 });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import grafikMenganggurBerdasarkanPendidikanCreate from "./create";
|
||||
import grafikMenganggurBerdasarkanPendidikanDelete from "./del";
|
||||
import grafikMenganggurBerdasarkanPendidikanFindMany from "./findMany";
|
||||
import grafikMenganggurBerdasarkanPendidikanFindUnique from "./findUnique";
|
||||
import grafikMenganggurBerdasarkanPendidikanUpdate from "./updt";
|
||||
|
||||
const GrafikMenganggurBerdasarkanPendidikan = new Elysia({prefix: "grafikmenganggurberdasarkanpendidikan", tags: ["Ekonomi/Usia Kerja Yang Menganggur/Pengangguran Berdasarkan Pendidikan"]})
|
||||
.get("/find-many", grafikMenganggurBerdasarkanPendidikanFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikMenganggurBerdasarkanPendidikanFindUnique(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikMenganggurBerdasarkanPendidikanUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
SD: t.String(),
|
||||
SMP: t.String(),
|
||||
SMA: t.String(),
|
||||
D3: t.String(),
|
||||
S1: t.String(),
|
||||
}),
|
||||
})
|
||||
.post("/create", grafikMenganggurBerdasarkanPendidikanCreate, {
|
||||
body: t.Object({
|
||||
SD: t.String(),
|
||||
SMP: t.String(),
|
||||
SMA: t.String(),
|
||||
D3: t.String(),
|
||||
S1: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikMenganggurBerdasarkanPendidikanDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
export default GrafikMenganggurBerdasarkanPendidikan
|
||||
@@ -0,0 +1,53 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanPendidikanUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {SD, SMP, SMA, D3, S1} = context.body as {
|
||||
SD: string;
|
||||
SMP: string;
|
||||
SMA: string;
|
||||
D3: string;
|
||||
S1: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.grafikMenganggurBerdasarkanPendidikan.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.grafikMenganggurBerdasarkanPendidikan.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: {
|
||||
SD: SD,
|
||||
SMP: SMP,
|
||||
SMA: SMA,
|
||||
D3: D3,
|
||||
S1: S1,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikMenganggurBerdasarkanUsiaUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {usia18_25, usia26_35, usia36_45, usia46_keatas} = context.body as {
|
||||
usia18_25: string;
|
||||
usia26_35: string;
|
||||
usia36_45: string;
|
||||
usia46_keatas: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.grafikMenganggurBerdasarkanUsia.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.grafikMenganggurBerdasarkanUsia.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: {
|
||||
usia18_25: usia18_25,
|
||||
usia26_35: usia26_35,
|
||||
usia36_45: usia36_45,
|
||||
usia46_keatas: usia46_keatas,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user