From d21865ca65bd580acbaa338b8749cdd9f64d2677 Mon Sep 17 00:00:00 2001 From: keyy1315 Date: Tue, 20 May 2025 14:01:22 +0900 Subject: [PATCH] fix: convert camelcase function move to util.js --- src/app/api/survey-sales/[id]/route.ts | 2 +- src/app/api/survey-sales/route.ts | 26 +------------------------- src/utils/common-utils.js | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/app/api/survey-sales/[id]/route.ts b/src/app/api/survey-sales/[id]/route.ts index 3b88e86..415d1e6 100644 --- a/src/app/api/survey-sales/[id]/route.ts +++ b/src/app/api/survey-sales/[id]/route.ts @@ -1,6 +1,6 @@ import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/libs/prisma' -import { convertToSnakeCase } from '../route' +import { convertToSnakeCase } from '@/utils/common-utils' export async function GET(request: NextRequest, { params }: { params: Promise<{ id: string }> }) { try { diff --git a/src/app/api/survey-sales/route.ts b/src/app/api/survey-sales/route.ts index aa9a549..3298f5d 100644 --- a/src/app/api/survey-sales/route.ts +++ b/src/app/api/survey-sales/route.ts @@ -1,6 +1,6 @@ import { NextResponse } from 'next/server' import { prisma } from '@/libs/prisma' - +import { convertToSnakeCase } from '@/utils/common-utils' /** * 검색 파라미터 */ @@ -219,30 +219,6 @@ export async function PUT(request: Request) { } } -// 카멜케이스를 스네이크케이스로 변환하는 함수 -export const toSnakeCase = (str: string) => { - return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`); -} - -// 객체의 키를 스네이크케이스로 변환하는 함수 -export const convertToSnakeCase = (obj: any): Record => { - if (obj === null || obj === undefined) return obj; - - if (Array.isArray(obj)) { - return obj.map((item: any) => convertToSnakeCase(item)) - } - - if (typeof obj === 'object') { - return Object.keys(obj).reduce((acc, key) => { - const snakeKey = toSnakeCase(key).toUpperCase(); - acc[snakeKey] = convertToSnakeCase(obj[key]); - return acc; - }, {} as Record); - } - - return obj; -} - export async function POST(request: Request) { try { const body = await request.json() diff --git a/src/utils/common-utils.js b/src/utils/common-utils.js index 0a1265f..d0c7f65 100644 --- a/src/utils/common-utils.js +++ b/src/utils/common-utils.js @@ -185,3 +185,28 @@ export const isEqualObjects = (obj1, obj2) => { function isObject(value) { return value !== null && typeof value === 'object' } + + +// 카멜케이스를 스네이크케이스로 변환하는 함수 +export const toSnakeCase = (str) => { + return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`); +} + +// 객체의 키를 스네이크케이스로 변환하는 함수 +export const convertToSnakeCase = (obj) => { + if (obj === null || obj === undefined) return obj; + + if (Array.isArray(obj)) { + return obj.map((item) => convertToSnakeCase(item)) + } + + if (typeof obj === 'object') { + return Object.keys(obj).reduce((acc, key) => { + const snakeKey = toSnakeCase(key).toUpperCase(); + acc[snakeKey] = convertToSnakeCase(obj[key]); + return acc; + }, {}); + } + + return obj; +}