diff --git a/backend-node/src/controllers/codeMergeController.ts b/backend-node/src/controllers/codeMergeController.ts index e7658253..29abfa8e 100644 --- a/backend-node/src/controllers/codeMergeController.ts +++ b/backend-node/src/controllers/codeMergeController.ts @@ -63,9 +63,9 @@ export async function mergeCodeAllTables( ); // 결과 처리 (pool.query 반환 타입 처리) - const affectedTables = Array.isArray(result) ? result : (result.rows || []); + const affectedTables = Array.isArray(result) ? result : ((result as any).rows || []); const totalRows = affectedTables.reduce( - (sum, row) => sum + parseInt(row.rows_updated || 0), + (sum: number, row: any) => sum + parseInt(row.rows_updated || 0), 0 ); @@ -148,16 +148,17 @@ export async function getTablesWithColumn( `; const result = await pool.query(query, [columnName]); + const rows = (result as any).rows || []; - logger.info(`컬럼을 가진 테이블 조회 완료: ${result.rows.length}개`); + logger.info(`컬럼을 가진 테이블 조회 완료: ${rows.length}개`); res.json({ success: true, message: "테이블 목록 조회 성공", data: { columnName, - tables: result.rows.map((row) => row.table_name), - count: result.rows.length, + tables: rows.map((row: any) => row.table_name), + count: rows.length, }, }); } catch (error: any) { @@ -223,7 +224,7 @@ export async function previewCodeMerge( // 각 테이블에서 영향받을 행 수 계산 const preview = []; - const tableRows = Array.isArray(tablesResult) ? tablesResult : (tablesResult.rows || []); + const tableRows = Array.isArray(tablesResult) ? tablesResult : ((tablesResult as any).rows || []); for (const row of tableRows) { const tableName = row.table_name; @@ -234,7 +235,8 @@ export async function previewCodeMerge( try { const countResult = await pool.query(countQuery, [oldValue, companyCode]); - const count = parseInt(countResult.rows[0].count); + const rows = (countResult as any).rows || []; + const count = rows.length > 0 ? parseInt(rows[0].count) : 0; if (count > 0) { preview.push({ diff --git a/backend-node/src/controllers/tableCategoryValueController.ts b/backend-node/src/controllers/tableCategoryValueController.ts index e489bbf2..92f1f235 100644 --- a/backend-node/src/controllers/tableCategoryValueController.ts +++ b/backend-node/src/controllers/tableCategoryValueController.ts @@ -1,11 +1,12 @@ -import { Request, Response } from "express"; +import { Response } from "express"; +import { AuthenticatedRequest } from "../types/auth"; import tableCategoryValueService from "../services/tableCategoryValueService"; import { logger } from "../utils/logger"; /** * 테이블의 카테고리 컬럼 목록 조회 */ -export const getCategoryColumns = async (req: Request, res: Response) => { +export const getCategoryColumns = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const { tableName } = req.params; @@ -32,7 +33,7 @@ export const getCategoryColumns = async (req: Request, res: Response) => { /** * 카테고리 값 목록 조회 (메뉴 스코프 적용) */ -export const getCategoryValues = async (req: Request, res: Response) => { +export const getCategoryValues = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const { tableName, columnName } = req.params; @@ -62,7 +63,7 @@ export const getCategoryValues = async (req: Request, res: Response) => { /** * 카테고리 값 추가 */ -export const addCategoryValue = async (req: Request, res: Response) => { +export const addCategoryValue = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const userId = req.user!.userId; @@ -91,7 +92,7 @@ export const addCategoryValue = async (req: Request, res: Response) => { /** * 카테고리 값 수정 */ -export const updateCategoryValue = async (req: Request, res: Response) => { +export const updateCategoryValue = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const userId = req.user!.userId; @@ -129,7 +130,7 @@ export const updateCategoryValue = async (req: Request, res: Response) => { /** * 카테고리 값 삭제 */ -export const deleteCategoryValue = async (req: Request, res: Response) => { +export const deleteCategoryValue = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const userId = req.user!.userId; @@ -204,7 +205,7 @@ export const bulkDeleteCategoryValues = async ( /** * 카테고리 값 순서 변경 */ -export const reorderCategoryValues = async (req: Request, res: Response) => { +export const reorderCategoryValues = async (req: AuthenticatedRequest, res: Response) => { try { const companyCode = req.user!.companyCode; const { orderedValueIds } = req.body; diff --git a/backend-node/src/services/tableManagementService.ts b/backend-node/src/services/tableManagementService.ts index 9434dc78..93674bed 100644 --- a/backend-node/src/services/tableManagementService.ts +++ b/backend-node/src/services/tableManagementService.ts @@ -416,7 +416,7 @@ export class TableManagementService { await this.updateColumnInputType( tableName, columnName, - settings.inputType, + settings.inputType as string, companyCode, parsedDetailSettings ); diff --git a/backend-node/src/types/input-types.ts b/backend-node/src/types/input-types.ts index c3b3794b..98e429c1 100644 --- a/backend-node/src/types/input-types.ts +++ b/backend-node/src/types/input-types.ts @@ -67,12 +67,6 @@ export const INPUT_TYPE_OPTIONS: InputTypeOption[] = [ description: "단일 선택", category: "selection", }, - { - value: "image", - label: "이미지", - description: "이미지 표시", - category: "basic", - }, ]; // 입력 타입 검증 함수