import axios, { HttpStatusCode } from 'axios' import { NextResponse } from 'next/server' import { ERROR_MESSAGES, queryStringFormatter } from '@/utils/common-utils' import { getIronSession } from 'iron-session' import { cookies } from 'next/headers' import { loggerWrapper } from '@/libs/api-wrapper' import { sessionOptions } from '@/libs/session' import { SessionData } from '@/types/Auth' async function getQnaList(request: Request): Promise { const cookieStore = await cookies() const session = await getIronSession(cookieStore, sessionOptions) if (!session.isLoggedIn) { return NextResponse.json({ error: ERROR_MESSAGES.UNAUTHORIZED }, { status: HttpStatusCode.Unauthorized }) } const { searchParams } = new URL(request.url) const params: Record = {} searchParams.forEach((value, key) => { const match = key.match(/inquiryListRequest\[(.*)\]/) if (match) { params[match[1]] = value } else { params[key] = value } }) try { const response = await axios.get(`${process.env.NEXT_PUBLIC_INQUIRY_API_URL}/api/qna/list?${queryStringFormatter(params)}`) if (response.status === 200) { return NextResponse.json(response.data) } return NextResponse.json({ error: response.data.result }, { status: response.status }) } catch (error: any) { return NextResponse.json({ error: error.response.data.result ?? ERROR_MESSAGES.FETCH_ERROR }, { status: HttpStatusCode.InternalServerError }) } } export const GET = loggerWrapper(getQnaList)