화면 저장기능 구현
This commit is contained in:
@@ -16,6 +16,36 @@ export const getScreens = async (req: AuthenticatedRequest, res: Response) => {
|
||||
}
|
||||
};
|
||||
|
||||
// 단일 화면 조회
|
||||
export const getScreen = async (
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
): Promise<void> => {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { companyCode } = req.user as any;
|
||||
const screen = await screenManagementService.getScreen(
|
||||
parseInt(id),
|
||||
companyCode
|
||||
);
|
||||
|
||||
if (!screen) {
|
||||
res.status(404).json({
|
||||
success: false,
|
||||
message: "화면을 찾을 수 없습니다.",
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
res.json({ success: true, data: screen });
|
||||
} catch (error) {
|
||||
console.error("화면 조회 실패:", error);
|
||||
res
|
||||
.status(500)
|
||||
.json({ success: false, message: "화면 조회에 실패했습니다." });
|
||||
}
|
||||
};
|
||||
|
||||
// 화면 생성
|
||||
export const createScreen = async (
|
||||
req: AuthenticatedRequest,
|
||||
@@ -173,3 +203,74 @@ export const generateScreenCode = async (
|
||||
.json({ success: false, message: "화면 코드 생성에 실패했습니다." });
|
||||
}
|
||||
};
|
||||
|
||||
// 화면-메뉴 할당
|
||||
export const assignScreenToMenu = async (
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
) => {
|
||||
try {
|
||||
const { screenId } = req.params;
|
||||
const { companyCode } = req.user as any;
|
||||
const assignmentData = { ...req.body, companyCode };
|
||||
|
||||
await screenManagementService.assignScreenToMenu(
|
||||
parseInt(screenId),
|
||||
assignmentData
|
||||
);
|
||||
res.json({
|
||||
success: true,
|
||||
message: "화면이 메뉴에 성공적으로 할당되었습니다.",
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("화면-메뉴 할당 실패:", error);
|
||||
res
|
||||
.status(500)
|
||||
.json({ success: false, message: "화면-메뉴 할당에 실패했습니다." });
|
||||
}
|
||||
};
|
||||
|
||||
// 메뉴별 할당된 화면 목록 조회
|
||||
export const getScreensByMenu = async (
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
) => {
|
||||
try {
|
||||
const { menuObjid } = req.params;
|
||||
const { companyCode } = req.user as any;
|
||||
|
||||
const screens = await screenManagementService.getScreensByMenu(
|
||||
parseInt(menuObjid),
|
||||
companyCode
|
||||
);
|
||||
res.json({ success: true, data: screens });
|
||||
} catch (error) {
|
||||
console.error("메뉴별 화면 조회 실패:", error);
|
||||
res
|
||||
.status(500)
|
||||
.json({ success: false, message: "메뉴별 화면 조회에 실패했습니다." });
|
||||
}
|
||||
};
|
||||
|
||||
// 화면-메뉴 할당 해제
|
||||
export const unassignScreenFromMenu = async (
|
||||
req: AuthenticatedRequest,
|
||||
res: Response
|
||||
) => {
|
||||
try {
|
||||
const { screenId, menuObjid } = req.params;
|
||||
const { companyCode } = req.user as any;
|
||||
|
||||
await screenManagementService.unassignScreenFromMenu(
|
||||
parseInt(screenId),
|
||||
parseInt(menuObjid),
|
||||
companyCode
|
||||
);
|
||||
res.json({ success: true, message: "화면-메뉴 할당이 해제되었습니다." });
|
||||
} catch (error) {
|
||||
console.error("화면-메뉴 할당 해제 실패:", error);
|
||||
res
|
||||
.status(500)
|
||||
.json({ success: false, message: "화면-메뉴 할당 해제에 실패했습니다." });
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user