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
|
||||
}
|
||||
},
|
||||
update: async (data: SurveySalesBasicInfo): Promise<SurveySalesBasicInfo> => {
|
||||
const response = await axiosInstance.put<SurveySalesBasicInfo>(`/api/survey-sales`, data)
|
||||
return response.data
|
||||
},
|
||||
// update: async (data: SurveySalesBasicInfo): Promise<SurveySalesBasicInfo> => {
|
||||
// const response = await axiosInstance.put<SurveySalesBasicInfo>(`/api/survey-sales`, 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' })
|
||||
}
|
||||
|
||||
export async function GET(request: Request, context: { params: { id: string } }) {
|
||||
const { id } = await context.params
|
||||
// @ts-ignore
|
||||
|
||||
@ -17,18 +17,19 @@ export async function GET() {
|
||||
return NextResponse.json(res)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
export async function GET(request: Request) {
|
||||
// @ts-ignore
|
||||
const res = await prisma.SD_SERVEY_SALES_BASIC_INFO.findMany({
|
||||
include: {
|
||||
detail_info: true,
|
||||
},
|
||||
})
|
||||
return NextResponse.json(res)
|
||||
}
|
||||
// export async function GET(request: Request) {
|
||||
// // @ts-ignore
|
||||
// const res = await prisma.SD_SERVEY_SALES_BASIC_INFO.findMany({
|
||||
// include: {
|
||||
// detail_info: true,
|
||||
// },
|
||||
// })
|
||||
// return NextResponse.json(res)
|
||||
// }
|
||||
|
||||
export async function PUT(request: Request) {
|
||||
const body = await request.json()
|
||||
|
||||
@ -43,12 +43,12 @@ export default function SurveySales() {
|
||||
enabled: isSearch,
|
||||
})
|
||||
|
||||
const { mutate: updateSurveySales } = useMutation({
|
||||
mutationFn: surveySalesApi.update,
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey-sales', 'list'] })
|
||||
},
|
||||
})
|
||||
// const { mutate: updateSurveySales } = useMutation({
|
||||
// mutationFn: surveySalesApi.update,
|
||||
// onSuccess: () => {
|
||||
// queryClient.invalidateQueries({ queryKey: ['survey-sales', 'list'] })
|
||||
// },
|
||||
// })
|
||||
|
||||
const handleUpdateSurveySales = () => {
|
||||
const detailData: SurveySalesDetailInfo = {
|
||||
@ -96,7 +96,7 @@ export default function SurveySales() {
|
||||
detail_info: { ...detailData },
|
||||
}
|
||||
|
||||
updateSurveySales(surveySalesData)
|
||||
// updateSurveySales(surveySalesData)
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { SurveySalesBasicInfo, surveySalesApi, SurveySalesDetailInfo } from '@/api/surveySales'
|
||||
import { axiosInstance } from '@/libs/axios'
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||
|
||||
export function useServey(id?: number): {
|
||||
@ -24,16 +25,20 @@ export function useServey(id?: number): {
|
||||
|
||||
const { data: surveyDetail, isLoading: isLoadingSurveyDetail } = useQuery({
|
||||
queryKey: ['survey', id],
|
||||
queryFn: () => {
|
||||
queryFn: async () => {
|
||||
if (id === undefined) throw new Error('id is required')
|
||||
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,
|
||||
})
|
||||
|
||||
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) => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||
return data
|
||||
@ -41,9 +46,10 @@ export function useServey(id?: number): {
|
||||
})
|
||||
|
||||
const { mutate: updateSurvey, isPending: isUpdatingSurvey } = useMutation({
|
||||
mutationFn: (survey: SurveySalesBasicInfo) => {
|
||||
mutationFn: async (survey: SurveySalesBasicInfo) => {
|
||||
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: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
||||
@ -52,27 +58,32 @@ export function useServey(id?: number): {
|
||||
})
|
||||
|
||||
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')
|
||||
return surveySalesApi.delete(id, isDetail)
|
||||
const resp = await axiosInstance.delete<boolean>(`/api/survey-sales/${id}`, { params: { isDetail } })
|
||||
return resp.data
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||
},
|
||||
})
|
||||
|
||||
const { mutate: createSurveyDetail } = useMutation({
|
||||
mutationFn: ({ surveyId, surveyDetail }: { surveyId: number; surveyDetail: SurveySalesDetailInfo }) =>
|
||||
surveySalesApi.createDetail(surveyId, surveyDetail),
|
||||
const { mutateAsync: createSurveyDetail, isPending: isCreatingSurveyDetail } = useMutation({
|
||||
mutationFn: async ({ surveyId, surveyDetail }: { surveyId: number; surveyDetail: SurveySalesDetailInfo }) => {
|
||||
const resp = await axiosInstance.post<SurveySalesDetailInfo>(`/api/survey-sales/${surveyId}`, surveyDetail)
|
||||
return resp.data
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
||||
},
|
||||
})
|
||||
|
||||
const { mutate: confirmSurvey, isPending: isConfirmingSurvey } = useMutation({
|
||||
mutationFn: (id: number) => {
|
||||
const { mutateAsync: confirmSurvey, isPending: isConfirmingSurvey } = useMutation({
|
||||
mutationFn: async (id: number) => {
|
||||
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: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user