feat: hook up the matching form to the server

This commit is contained in:
Ahmed Bouhuolia
2024-06-26 17:39:12 +02:00
parent d2d37820f5
commit 7a9c7209bc
16 changed files with 538 additions and 177 deletions

View File

@@ -1,6 +1,7 @@
// @ts-nocheck
import { useMutation, useQuery, useQueryClient } from 'react-query';
import useApiRequest from '../useRequest';
import { transformToCamelCase } from '@/utils';
/**
*
@@ -75,3 +76,72 @@ export function useBankRule(bankRuleId: number, props) {
props,
);
}
/**
*
* @returns
*/
export function useMatchingTransactions(props?: any) {
const apiRequest = useApiRequest();
return useQuery(
['MATCHING_TRANSACTION'],
() =>
apiRequest
.get(`/banking/matches`)
.then((res) => transformToCamelCase(res.data.data)),
props,
);
}
export function useExcludeUncategorizedTransaction(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(uncategorizedTransactionId: number) =>
apiRequest.put(
`/cashflow/transactions/${uncategorizedTransactionId}/exclude`,
),
{
onSuccess: (res, id) => {
// Invalidate queries.
},
...props,
},
);
}
export function useUnexcludeUncategorizedTransaction(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(uncategorizedTransactionId: number) =>
apiRequest.post(
`/cashflow/transactions/${uncategorizedTransactionId}/unexclude`,
),
{
onSuccess: (res, id) => {
// Invalidate queries.
},
...props,
},
);
}
export function useMatchTransaction(props?: any) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
([uncategorizedTransactionId, values]) =>
apiRequest.post(`/banking/matches/${uncategorizedTransactionId}`, values),
{
onSuccess: (res, id) => {
// Invalidate queries.
},
...props,
},
);
}