데이터베이스 틀린 비밀번호 입력시 연결거부처리
This commit is contained in:
215
backend-node/src/controllers/dbTypeCategoryController.ts
Normal file
215
backend-node/src/controllers/dbTypeCategoryController.ts
Normal file
@@ -0,0 +1,215 @@
|
||||
import { Request, Response } from "express";
|
||||
import { DbTypeCategoryService } from "../services/dbTypeCategoryService";
|
||||
import { AuthenticatedRequest } from "../types/auth";
|
||||
|
||||
export class DbTypeCategoryController {
|
||||
/**
|
||||
* GET /api/db-type-categories
|
||||
* 모든 DB 타입 카테고리 조회
|
||||
*/
|
||||
static async getAllCategories(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const result = await DbTypeCategoryService.getAllCategories();
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입 카테고리 조회 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입 카테고리 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/db-type-categories/:typeCode
|
||||
* 특정 DB 타입 카테고리 조회
|
||||
*/
|
||||
static async getCategoryByTypeCode(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { typeCode } = req.params;
|
||||
|
||||
if (!typeCode) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: "DB 타입 코드가 필요합니다."
|
||||
});
|
||||
}
|
||||
|
||||
const result = await DbTypeCategoryService.getCategoryByTypeCode(typeCode);
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(404).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입 카테고리 조회 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입 카테고리 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /api/db-type-categories
|
||||
* DB 타입 카테고리 생성
|
||||
*/
|
||||
static async createCategory(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { type_code, display_name, icon, color, sort_order } = req.body;
|
||||
|
||||
if (!type_code || !display_name) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: "DB 타입 코드와 표시명은 필수입니다."
|
||||
});
|
||||
}
|
||||
|
||||
const result = await DbTypeCategoryService.createCategory({
|
||||
type_code,
|
||||
display_name,
|
||||
icon,
|
||||
color,
|
||||
sort_order
|
||||
});
|
||||
|
||||
if (result.success) {
|
||||
return res.status(201).json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입 카테고리 생성 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입 카테고리 생성 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PUT /api/db-type-categories/:typeCode
|
||||
* DB 타입 카테고리 수정
|
||||
*/
|
||||
static async updateCategory(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { typeCode } = req.params;
|
||||
const { display_name, icon, color, sort_order, is_active } = req.body;
|
||||
|
||||
if (!typeCode) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: "DB 타입 코드가 필요합니다."
|
||||
});
|
||||
}
|
||||
|
||||
const result = await DbTypeCategoryService.updateCategory(typeCode, {
|
||||
display_name,
|
||||
icon,
|
||||
color,
|
||||
sort_order,
|
||||
is_active
|
||||
});
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입 카테고리 수정 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입 카테고리 수정 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE /api/db-type-categories/:typeCode
|
||||
* DB 타입 카테고리 삭제 (비활성화)
|
||||
*/
|
||||
static async deleteCategory(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const { typeCode } = req.params;
|
||||
|
||||
if (!typeCode) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: "DB 타입 코드가 필요합니다."
|
||||
});
|
||||
}
|
||||
|
||||
const result = await DbTypeCategoryService.deleteCategory(typeCode);
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입 카테고리 삭제 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입 카테고리 삭제 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/db-type-categories/stats/connections
|
||||
* DB 타입별 연결 통계 조회
|
||||
*/
|
||||
static async getConnectionStatsByType(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const result = await DbTypeCategoryService.getConnectionStatsByType();
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("DB 타입별 통계 조회 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "DB 타입별 통계 조회 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /api/db-type-categories/initialize
|
||||
* 기본 DB 타입 카테고리 초기화
|
||||
*/
|
||||
static async initializeDefaultCategories(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const result = await DbTypeCategoryService.initializeDefaultCategories();
|
||||
|
||||
if (result.success) {
|
||||
return res.json(result);
|
||||
} else {
|
||||
return res.status(400).json(result);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("기본 카테고리 초기화 오류:", error);
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
message: "기본 카테고리 초기화 중 오류가 발생했습니다.",
|
||||
error: error instanceof Error ? error.message : "알 수 없는 오류"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user