fix: Modify react query mutation function
- axiosInstance 함수 정의하지 않고 mutation function에 직접 사용하도록 변경
This commit is contained in:
parent
9185b5cb7a
commit
ffa72ba9eb
@ -120,8 +120,8 @@ export const surveySalesApi = {
|
|||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
update: async (data: SurveySalesBasicInfo): Promise<SurveySalesBasicInfo> => {
|
// update: async (data: SurveySalesBasicInfo): Promise<SurveySalesBasicInfo> => {
|
||||||
const response = await axiosInstance.put<SurveySalesBasicInfo>(`/api/survey-sales`, data)
|
// const response = await axiosInstance.put<SurveySalesBasicInfo>(`/api/survey-sales`, data)
|
||||||
return response.data
|
// return response.data
|
||||||
},
|
// },
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ export async function POST(request: Request, context: { params: { id: string } }
|
|||||||
})
|
})
|
||||||
return NextResponse.json({ message: 'Survey detail created successfully' })
|
return NextResponse.json({ message: 'Survey detail created successfully' })
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function GET(request: Request, context: { params: { id: string } }) {
|
export async function GET(request: Request, context: { params: { id: string } }) {
|
||||||
const { id } = await context.params
|
const { id } = await context.params
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|||||||
@ -17,18 +17,19 @@ export async function GET() {
|
|||||||
return NextResponse.json(res)
|
return NextResponse.json(res)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function GET(request: Request) {
|
// export async function GET(request: Request) {
|
||||||
// @ts-ignore
|
// // @ts-ignore
|
||||||
const res = await prisma.SD_SERVEY_SALES_BASIC_INFO.findMany({
|
// const res = await prisma.SD_SERVEY_SALES_BASIC_INFO.findMany({
|
||||||
include: {
|
// include: {
|
||||||
detail_info: true,
|
// detail_info: true,
|
||||||
},
|
// },
|
||||||
})
|
// })
|
||||||
return NextResponse.json(res)
|
// return NextResponse.json(res)
|
||||||
}
|
// }
|
||||||
|
|
||||||
export async function PUT(request: Request) {
|
export async function PUT(request: Request) {
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
|
|||||||
@ -43,12 +43,12 @@ export default function SurveySales() {
|
|||||||
enabled: isSearch,
|
enabled: isSearch,
|
||||||
})
|
})
|
||||||
|
|
||||||
const { mutate: updateSurveySales } = useMutation({
|
// const { mutate: updateSurveySales } = useMutation({
|
||||||
mutationFn: surveySalesApi.update,
|
// mutationFn: surveySalesApi.update,
|
||||||
onSuccess: () => {
|
// onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey-sales', 'list'] })
|
// queryClient.invalidateQueries({ queryKey: ['survey-sales', 'list'] })
|
||||||
},
|
// },
|
||||||
})
|
// })
|
||||||
|
|
||||||
const handleUpdateSurveySales = () => {
|
const handleUpdateSurveySales = () => {
|
||||||
const detailData: SurveySalesDetailInfo = {
|
const detailData: SurveySalesDetailInfo = {
|
||||||
@ -96,7 +96,7 @@ export default function SurveySales() {
|
|||||||
detail_info: { ...detailData },
|
detail_info: { ...detailData },
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSurveySales(surveySalesData)
|
// updateSurveySales(surveySalesData)
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { SurveySalesBasicInfo, surveySalesApi, SurveySalesDetailInfo } from '@/api/surveySales'
|
import { SurveySalesBasicInfo, surveySalesApi, SurveySalesDetailInfo } from '@/api/surveySales'
|
||||||
|
import { axiosInstance } from '@/libs/axios'
|
||||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||||
|
|
||||||
export function useServey(id?: number): {
|
export function useServey(id?: number): {
|
||||||
@ -24,16 +25,20 @@ export function useServey(id?: number): {
|
|||||||
|
|
||||||
const { data: surveyDetail, isLoading: isLoadingSurveyDetail } = useQuery({
|
const { data: surveyDetail, isLoading: isLoadingSurveyDetail } = useQuery({
|
||||||
queryKey: ['survey', id],
|
queryKey: ['survey', id],
|
||||||
queryFn: () => {
|
queryFn: async () => {
|
||||||
if (id === undefined) throw new Error('id is required')
|
if (id === undefined) throw new Error('id is required')
|
||||||
if (id === null) return null
|
if (id === null) return null
|
||||||
return surveySalesApi.getDetail(id)
|
const resp = await axiosInstance.get<SurveySalesBasicInfo>(`/api/survey-sales/${id}`)
|
||||||
|
return resp.data
|
||||||
},
|
},
|
||||||
enabled: id !== undefined,
|
enabled: id !== undefined,
|
||||||
})
|
})
|
||||||
|
|
||||||
const { mutateAsync: createSurvey, isPending: isCreatingSurvey } = useMutation({
|
const { mutateAsync: createSurvey, isPending: isCreatingSurvey } = useMutation({
|
||||||
mutationFn: (survey: SurveySalesBasicInfo) => surveySalesApi.create(survey),
|
mutationFn: async (survey: SurveySalesBasicInfo) => {
|
||||||
|
const resp = await axiosInstance.post<SurveySalesBasicInfo>('/api/survey-sales', survey)
|
||||||
|
return resp.data.id ?? 0
|
||||||
|
},
|
||||||
onSuccess: (data) => {
|
onSuccess: (data) => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||||
return data
|
return data
|
||||||
@ -41,9 +46,10 @@ export function useServey(id?: number): {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { mutate: updateSurvey, isPending: isUpdatingSurvey } = useMutation({
|
const { mutate: updateSurvey, isPending: isUpdatingSurvey } = useMutation({
|
||||||
mutationFn: (survey: SurveySalesBasicInfo) => {
|
mutationFn: async (survey: SurveySalesBasicInfo) => {
|
||||||
if (id === undefined) throw new Error('id is required')
|
if (id === undefined) throw new Error('id is required')
|
||||||
return surveySalesApi.update(id, survey)
|
const resp = await axiosInstance.put<SurveySalesBasicInfo>(`/api/survey-sales/${id}`, survey)
|
||||||
|
return resp.data
|
||||||
},
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
||||||
@ -52,27 +58,32 @@ export function useServey(id?: number): {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const { mutateAsync: deleteSurvey, isPending: isDeletingSurvey } = useMutation({
|
const { mutateAsync: deleteSurvey, isPending: isDeletingSurvey } = useMutation({
|
||||||
mutationFn: ({ id, isDetail }: { id: number; isDetail: boolean }) => {
|
mutationFn: async ({ id, isDetail }: { id: number; isDetail: boolean }) => {
|
||||||
if (id === undefined) throw new Error('id is required')
|
if (id === undefined) throw new Error('id is required')
|
||||||
return surveySalesApi.delete(id, isDetail)
|
const resp = await axiosInstance.delete<boolean>(`/api/survey-sales/${id}`, { params: { isDetail } })
|
||||||
|
return resp.data
|
||||||
},
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const { mutate: createSurveyDetail } = useMutation({
|
const { mutateAsync: createSurveyDetail, isPending: isCreatingSurveyDetail } = useMutation({
|
||||||
mutationFn: ({ surveyId, surveyDetail }: { surveyId: number; surveyDetail: SurveySalesDetailInfo }) =>
|
mutationFn: async ({ surveyId, surveyDetail }: { surveyId: number; surveyDetail: SurveySalesDetailInfo }) => {
|
||||||
surveySalesApi.createDetail(surveyId, surveyDetail),
|
const resp = await axiosInstance.post<SurveySalesDetailInfo>(`/api/survey-sales/${surveyId}`, surveyDetail)
|
||||||
|
return resp.data
|
||||||
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const { mutate: confirmSurvey, isPending: isConfirmingSurvey } = useMutation({
|
const { mutateAsync: confirmSurvey, isPending: isConfirmingSurvey } = useMutation({
|
||||||
mutationFn: (id: number) => {
|
mutationFn: async (id: number) => {
|
||||||
if (id === undefined) throw new Error('id is required')
|
if (id === undefined) throw new Error('id is required')
|
||||||
return surveySalesApi.confirm(id)
|
const resp = await axiosInstance.patch<boolean>(`/api/survey-sales/${id}`)
|
||||||
|
return resp.data
|
||||||
},
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user