keyy1315 7db421c26a refactor: Refactoring code and add error handling
- 조사매물 조회 시 로그인 여부 확인 로직 서버 사이드로 이동
- 에러 핸들링 추가
- 조사매물 수정/작성 페이지 컴포넌트 리팩토링
- 조사매물 작성 후 제출 버튼 클릭 시 node 삽입 오류 해결
2025-06-10 15:32:27 +09:00

40 lines
1.3 KiB
TypeScript

import axios from 'axios'
import { NextResponse } from 'next/server'
import { queryStringFormatter } from '@/utils/common-utils'
import { getIronSession } from 'iron-session'
import { cookies } from 'next/headers'
import { sessionOptions } from '@/libs/session'
import { SessionData } from '@/types/Auth'
export async function GET(request: Request) {
const cookieStore = await cookies()
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
if (!session.isLoggedIn) {
return NextResponse.json({ error: 'ログインしていません。' }, { status: 401 })
}
const { searchParams } = new URL(request.url)
const params: Record<string, string> = {}
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: 'Failed to fetch qna list' }, { status: response.status })
} catch (error: any) {
console.error('Error fetching qna list:', error.response.data)
return NextResponse.json({ error: 'route error' }, { status: 500 })
}
}