api : add api
Deskripsi: - add gorup - add position - village No issue
This commit is contained in:
36
src/module/village/api/api_index.ts
Normal file
36
src/module/village/api/api_index.ts
Normal 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,
|
||||
},
|
||||
];
|
||||
|
||||
15
src/module/village/api/api_village.ts
Normal file
15
src/module/village/api/api_village.ts
Normal 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" });
|
||||
}
|
||||
21
src/module/village/api/get/getAllVillage.ts
Normal file
21
src/module/village/api/get/getAllVillage.ts
Normal 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 });
|
||||
}
|
||||
}
|
||||
32
src/module/village/api/get/getOneVillage.ts
Normal file
32
src/module/village/api/get/getOneVillage.ts
Normal 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 }
|
||||
);
|
||||
}
|
||||
}
|
||||
24
src/module/village/api/post/createVillage.ts
Normal file
24
src/module/village/api/post/createVillage.ts
Normal 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 });
|
||||
}
|
||||
}
|
||||
25
src/module/village/api/post/deleteVillage.ts
Normal file
25
src/module/village/api/post/deleteVillage.ts
Normal 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 }
|
||||
);
|
||||
}
|
||||
}
|
||||
28
src/module/village/api/post/updateVillage.ts
Normal file
28
src/module/village/api/post/updateVillage.ts
Normal 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 }
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
import { apiViilage } from "./api/api_village";
|
||||
|
||||
export { apiViilage };
|
||||
|
||||
Reference in New Issue
Block a user