diff --git a/.github/workflows/RomRom-ADMIN-CI.yml b/.github/workflows/RomRom-ADMIN-CI.yml index 5dacb5d..977ad33 100644 --- a/.github/workflows/RomRom-ADMIN-CI.yml +++ b/.github/workflows/RomRom-ADMIN-CI.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - test + - main jobs: build: diff --git a/src/app/api/[...path]/route.ts b/src/app/api/[...path]/route.ts index 3c8af8b..2ccf751 100644 --- a/src/app/api/[...path]/route.ts +++ b/src/app/api/[...path]/route.ts @@ -10,26 +10,26 @@ const proxy = createProxy({ stripRequestHeaders: ['content-length'], }); -export function GET(req: NextRequest, ctx: ProxyContext): Promise { +export async function GET(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } -export function POST(req: NextRequest, ctx: ProxyContext): Promise { +export async function POST(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } -export function PUT(req: NextRequest, ctx: ProxyContext): Promise { +export async function PUT(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } -export function PATCH(req: NextRequest, ctx: ProxyContext): Promise { +export async function PATCH(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } -export function DELETE(req: NextRequest, ctx: ProxyContext): Promise { +export async function DELETE(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } -export function OPTIONS(req: NextRequest, ctx: ProxyContext): Promise { +export async function OPTIONS(req: NextRequest, ctx: ProxyContext): Promise { return proxy(req, ctx); } \ No newline at end of file diff --git a/src/lib/bff/proxy.ts b/src/lib/bff/proxy.ts index c530d45..a4a5137 100644 --- a/src/lib/bff/proxy.ts +++ b/src/lib/bff/proxy.ts @@ -1,4 +1,4 @@ -import { NextResponse, type NextRequest } from 'next/server'; +import { type NextRequest, NextResponse } from 'next/server'; import type { ProxyConfig, ProxyContext, ProxyHandler } from './types'; /** URL 안전 결합 (중복 슬래시 제거) */ @@ -50,7 +50,8 @@ export function createProxy(config: ProxyConfig): ProxyHandler { const backendHost = backendUrl.host; return async (req: NextRequest, ctx: ProxyContext): Promise => { - const path = (ctx.params?.path ?? []).join('/'); + const { path: segs } = await ctx.params; + const path = Array.isArray(segs) ? segs.join('/') : ''; const target = joinUrl(config.backendBaseUrl, path, new URL(req.url).search); const upstreamHeaders = buildUpstreamHeaders(req, backendHost, config); diff --git a/src/lib/bff/types.ts b/src/lib/bff/types.ts index 6343b0f..6ed83bb 100644 --- a/src/lib/bff/types.ts +++ b/src/lib/bff/types.ts @@ -2,9 +2,7 @@ import { NextRequest } from "next/server"; export interface ProxyContext { - readonly params: { - readonly path: string[]; - }; + readonly params: Promise<{ path: string[] }> } // 프록시 실행에 필요한 설정 diff --git a/src/lib/error/error-code.ts b/src/lib/error/error-code.ts index 9e7d8f5..37a97b1 100644 --- a/src/lib/error/error-code.ts +++ b/src/lib/error/error-code.ts @@ -10,7 +10,7 @@ export const ERROR_CODES = { INVALID_REQUEST: {status: 400, message: '유효하지 않은 요청입니다.'}, // AUTH - LOGIN_FAILED: {status: 400, message: '로그인에 실패했습니다'}, + LOGIN_FAILED: {status: 401, message: '로그인에 실패했습니다'}, } as const; export type ErrorCodeKey = keyof typeof ERROR_CODES;