upd: fx api monitoring
This commit is contained in:
@@ -803,6 +803,143 @@ const MonitoringServer = new Elysia({ prefix: "/api/monitoring" })
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
.get("/list-group-villages", async ({ query, set }) => {
|
||||||
|
const { id } = query;
|
||||||
|
try {
|
||||||
|
const data = await prisma.group.findMany({
|
||||||
|
where: {
|
||||||
|
idVillage: id,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
set.status = 404;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Desa tidak ditemukan",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Berhasil mendapatkan data",
|
||||||
|
data: data,
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[detail-villages] list-group-villages error:", error);
|
||||||
|
set.status = 500;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Terjadi kesalahan pada server",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
query: t.Object({
|
||||||
|
id: t.Optional(t.String({ description: "ID desa" })),
|
||||||
|
}),
|
||||||
|
detail: {
|
||||||
|
summary: "List Group Villages",
|
||||||
|
description: "Menu Detail Villages - Mendapatkan list group untuk dropdown.",
|
||||||
|
tags: ["detail-villages"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.get("/list-position-villages", async ({ query, set }) => {
|
||||||
|
const { id } = query;
|
||||||
|
try {
|
||||||
|
const data = await prisma.position.findMany({
|
||||||
|
where: {
|
||||||
|
idGroup: id,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
set.status = 404;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Posisi tidak ditemukan",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Berhasil mendapatkan data",
|
||||||
|
data: data,
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[detail-villages] list-position-villages error:", error);
|
||||||
|
set.status = 500;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Terjadi kesalahan pada server",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
query: t.Object({
|
||||||
|
id: t.Optional(t.String({ description: "ID group" })),
|
||||||
|
}),
|
||||||
|
detail: {
|
||||||
|
summary: "List Position Villages",
|
||||||
|
description: "Menu Detail Villages - Mendapatkan list jabatan untuk dropdown.",
|
||||||
|
tags: ["detail-villages"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.get("/list-userrole-villages", async ({ query, set }) => {
|
||||||
|
try {
|
||||||
|
const data = await prisma.userRole.findMany({
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
set.status = 404;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Role tidak ditemukan",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Berhasil mendapatkan data",
|
||||||
|
data: data,
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[detail-villages] list-userrole-villages error:", error);
|
||||||
|
set.status = 500;
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "Terjadi kesalahan pada server",
|
||||||
|
data: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
detail: {
|
||||||
|
summary: "List User Role",
|
||||||
|
description: "Menu Detail Villages - Mendapatkan list role untuk dropdown.",
|
||||||
|
tags: ["detail-villages"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
.post("/edit-villages", async ({ body, set }) => {
|
.post("/edit-villages", async ({ body, set }) => {
|
||||||
const { id, name, desc } = body;
|
const { id, name, desc } = body;
|
||||||
|
|
||||||
@@ -1085,6 +1222,11 @@ const MonitoringServer = new Elysia({ prefix: "/api/monitoring" })
|
|||||||
email: true,
|
email: true,
|
||||||
isWithoutOTP: true,
|
isWithoutOTP: true,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
|
idUserRole: true,
|
||||||
|
idVillage: true,
|
||||||
|
idGroup: true,
|
||||||
|
idPosition: true,
|
||||||
|
gender: true,
|
||||||
UserRole: {
|
UserRole: {
|
||||||
select: {
|
select: {
|
||||||
name: true,
|
name: true,
|
||||||
@@ -1163,12 +1305,17 @@ const MonitoringServer = new Elysia({ prefix: "/api/monitoring" })
|
|||||||
nik: item.nik,
|
nik: item.nik,
|
||||||
phone: item.phone,
|
phone: item.phone,
|
||||||
email: item.email,
|
email: item.email,
|
||||||
|
gender: item.gender,
|
||||||
isWithoutOTP: item.isWithoutOTP,
|
isWithoutOTP: item.isWithoutOTP,
|
||||||
isActive: item.isActive,
|
isActive: item.isActive,
|
||||||
role: item.UserRole?.name,
|
role: item.UserRole?.name,
|
||||||
village: item.Village?.name,
|
village: item.Village?.name,
|
||||||
group: item.Group?.name,
|
group: item.Group?.name,
|
||||||
position: item.Position?.name,
|
position: item.Position?.name,
|
||||||
|
idUserRole: item.idUserRole,
|
||||||
|
idVillage: item.idVillage,
|
||||||
|
idGroup: item.idGroup,
|
||||||
|
idPosition: item.idPosition,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user