Files
pos-dashboard-v2/src/services/mutations/purchaseOrder.ts
T

39 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-09-12 21:54:27 +07:00
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { toast } from 'react-toastify'
import { api } from '../api'
2025-09-13 12:30:24 +07:00
import { PurchaseOrderRequest, SendPaymentPurchaseOrderRequest } from '@/types/services/purchaseOrder'
2025-09-12 21:54:27 +07:00
2025-09-13 01:34:43 +07:00
export const usePurchaseOrdersMutation = () => {
2025-09-12 21:54:27 +07:00
const queryClient = useQueryClient()
2025-09-13 01:34:43 +07:00
const createPurchaseOrder = useMutation({
mutationFn: async (newPurchaseOrder: PurchaseOrderRequest) => {
const response = await api.post('/purchase-orders', newPurchaseOrder)
2025-09-12 21:54:27 +07:00
return response.data
},
onSuccess: () => {
2025-09-13 01:34:43 +07:00
toast.success('Purchase Order created successfully!')
queryClient.invalidateQueries({ queryKey: ['purchase-orders'] })
2025-09-12 21:54:27 +07:00
},
onError: (error: any) => {
toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
}
})
2025-09-13 01:34:43 +07:00
2025-09-13 12:30:24 +07:00
const sendPaymentPurchaseOrder = useMutation({
mutationFn: async ({ id, payload }: { id: string; payload: SendPaymentPurchaseOrderRequest }) => {
const response = await api.put(`/purchase-orders/${id}`, payload)
return response.data
},
onSuccess: () => {
toast.success('Purchase Order created successfully!')
queryClient.invalidateQueries({ queryKey: ['purchase-orders'] })
},
onError: (error: any) => {
toast.error(error.response?.data?.errors?.[0]?.cause || 'Create failed')
}
})
return { createPurchaseOrder, sendPaymentPurchaseOrder }
2025-09-12 21:54:27 +07:00
}