api : add api

Deskripsi:
- add gorup
- add position
- village

No issue
This commit is contained in:
lukman
2024-07-25 16:43:13 +08:00
parent 404734c8f6
commit 3af192313a
33 changed files with 670 additions and 3 deletions

View File

@@ -0,0 +1,36 @@
import { getAllVillage } from "./get/getAllVillage";
import { getOneVillage } from "./get/getOneVillage";
import { createVillage } from "./post/createVillage";
import { deleteVillage } from "./post/deleteVillage";
import { updateVillage } from "./post/updateVillage";
export const API_INDEX_VILLAGE = [
{
path: "get-all-village",
method: "GET",
bin: getAllVillage,
},
{
path: "create-village",
method: "POST",
bin: createVillage,
},
{
path: "update-village",
method: "POST",
bin: updateVillage,
},
{
path: "delete-village",
method: "POST",
bin: deleteVillage,
},
{
path: "get-one-village",
method: "GET",
bin: getOneVillage,
},
];

View File

@@ -0,0 +1,15 @@
import { API_INDEX_VILLAGE } from "./api_index";
type Method = "GET" | "POST";
export async function apiViilage(req: Request, method: Method) {
const { searchParams } = new URL(req.url);
const path = searchParams.get("path");
const act = API_INDEX_VILLAGE.find(
(v) => v.path === path && v.method === method
);
if (!path)
return Response.json({ message: "page not found" }, { status: 404 });
if (act) return act.bin(req);
return Response.json({ message: "404" });
}

View File

@@ -0,0 +1,21 @@
import { prisma } from "@/module/_global";
export async function getAllVillage(req: Request) {
try {
const villages = await prisma.village.findMany({
where: {
isActive: true,
},
select: {
id: true,
name: true,
desc: true,
},
});
return Response.json(villages);
} catch (error) {
console.error(error);
return Response.json({ message: "Internal Server Error" }, { status: 500 });
}
}

View File

@@ -0,0 +1,32 @@
import { prisma } from "@/module/_global";
export async function getOneVillage(req: Request) {
try {
const village = "11";
const getOne = await prisma.village.findUnique({
where: {
id: village,
},
select: {
id: true,
name: true,
desc: true,
},
});
if (!getOne) {
return Response.json(
{ message: "Village tidak ditemukan", success: false },
{ status: 404 }
);
}
return Response.json(getOne);
} catch (error) {
console.error(error);
return Response.json(
{ message: "Internal Server Error", success: false },
{ status: 500 }
);
}
}

View File

@@ -0,0 +1,24 @@
import { prisma } from "@/module/_global";
export async function createVillage(req: Request) {
try {
const data = await req.json();
const village = await prisma.village.create({
data: {
name: data.name,
desc: data.desc,
isActive: true,
},
select: {
id: true,
name: true,
desc: true,
},
});
return Response.json(village, { status: 201 });
} catch (error) {
console.error(error);
return Response.json({ message: "Internal Server Error" }, { status: 500 });
}
}

View File

@@ -0,0 +1,25 @@
import { prisma } from "@/module/_global";
export async function deleteVillage(req: Request) {
try {
const data = await req.json();
const update = await prisma.village.update({
where: {
id: data.id,
},
data: {
isActive: false,
},
});
return Response.json(
{ success: true, message: "Sukses Delete Village" },
{ status: 200 }
);
} catch (error) {
console.error(error);
return Response.json(
{ message: "Internal Server Error", success: false },
{ status: 500 }
);
}
}

View File

@@ -0,0 +1,28 @@
import { prisma } from "@/module/_global";
export async function updateVillage(req: Request) {
try {
const data = await req.json();
const update = await prisma.village.update({
where: {
id: data.id,
},
data: {
name: data.name,
desc: data.desc,
},
});
return Response.json(
{ success: true, message: "Sukses Update Village" },
{ status: 200 }
);
} catch (error) {
console.error(error);
return Response.json(
{ message: "Internal Server Error", success: false },
{ status: 500 }
);
}
}

View File

@@ -0,0 +1,3 @@
import { apiViilage } from "./api/api_village";
export { apiViilage };