refactor: simplify frontend state and mutation boundaries
Frontend verify / commits (pull_request) Successful in 31s
Frontend verify / security (pull_request) Successful in 11s
Frontend verify / verify (pull_request) Successful in 9m1s
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 10s
Frontend verify / verify (push) Successful in 9m59s
Frontend verify / commits (pull_request) Successful in 31s
Frontend verify / security (pull_request) Successful in 11s
Frontend verify / verify (pull_request) Successful in 9m1s
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 10s
Frontend verify / verify (push) Successful in 9m59s
This commit was merged in pull request #44.
This commit is contained in:
@@ -26,7 +26,7 @@ async function mutationData<T>(
|
||||
return data;
|
||||
}
|
||||
|
||||
function useBankMutations() {
|
||||
function useBankMutationOptions() {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const invalidate = () =>
|
||||
@@ -43,7 +43,7 @@ function useBankMutations() {
|
||||
},
|
||||
});
|
||||
|
||||
const options = {
|
||||
return {
|
||||
onError: (error: unknown) => {
|
||||
const errorCode = apiErrorCode(error);
|
||||
if (
|
||||
@@ -60,14 +60,56 @@ function useBankMutations() {
|
||||
onSuccess: invalidate,
|
||||
retry: false,
|
||||
} as const;
|
||||
}
|
||||
|
||||
const cardCreation = useMutation({
|
||||
function useCreateBankCard() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: (body: CreateBankCard) =>
|
||||
mutationData(apiClient.POST("/api/v1/bank-cards", { body })),
|
||||
});
|
||||
}
|
||||
|
||||
const updateCard = useMutation({
|
||||
function useCreateBankOperation() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: (body: CreateBankOperation) =>
|
||||
mutationData(apiClient.POST("/api/v1/bank-cards/operations", { body })),
|
||||
});
|
||||
}
|
||||
|
||||
function useCreateExpenseCategory() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: (body: CreateExpenseCategory) =>
|
||||
mutationData(apiClient.POST("/api/v1/bank-cards/categories", { body })),
|
||||
});
|
||||
}
|
||||
|
||||
function useDeleteBankOperation() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: ({ id, version }: { id: string; version: number }) =>
|
||||
mutationData(
|
||||
apiClient.DELETE("/api/v1/bank-cards/operations/{id}", {
|
||||
params: { path: { id }, query: { version } },
|
||||
}),
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
function useUpdateBankCard() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: ({ body, id }: { body: UpdateBankCard; id: string }) =>
|
||||
mutationData(
|
||||
@@ -77,14 +119,12 @@ function useBankMutations() {
|
||||
}),
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
const operationCreation = useMutation({
|
||||
...options,
|
||||
mutationFn: (body: CreateBankOperation) =>
|
||||
mutationData(apiClient.POST("/api/v1/bank-cards/operations", { body })),
|
||||
});
|
||||
function useUpdateBankOperation() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
const updateOperation = useMutation({
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: ({ body, id }: { body: UpdateBankOperation; id: string }) =>
|
||||
mutationData(
|
||||
@@ -94,24 +134,12 @@ function useBankMutations() {
|
||||
}),
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
const operationDeletion = useMutation({
|
||||
...options,
|
||||
mutationFn: ({ id, version }: { id: string; version: number }) =>
|
||||
mutationData(
|
||||
apiClient.DELETE("/api/v1/bank-cards/operations/{id}", {
|
||||
params: { path: { id }, query: { version } },
|
||||
}),
|
||||
),
|
||||
});
|
||||
function useUpdateExpenseCategory() {
|
||||
const options = useBankMutationOptions();
|
||||
|
||||
const categoryCreation = useMutation({
|
||||
...options,
|
||||
mutationFn: (body: CreateExpenseCategory) =>
|
||||
mutationData(apiClient.POST("/api/v1/bank-cards/categories", { body })),
|
||||
});
|
||||
|
||||
const updateCategory = useMutation({
|
||||
return useMutation({
|
||||
...options,
|
||||
mutationFn: ({ body, id }: { body: UpdateExpenseCategory; id: string }) =>
|
||||
mutationData(
|
||||
@@ -121,16 +149,14 @@ function useBankMutations() {
|
||||
}),
|
||||
),
|
||||
});
|
||||
|
||||
return {
|
||||
createCard: cardCreation,
|
||||
createCategory: categoryCreation,
|
||||
createOperation: operationCreation,
|
||||
deleteOperation: operationDeletion,
|
||||
updateCard,
|
||||
updateCategory,
|
||||
updateOperation,
|
||||
};
|
||||
}
|
||||
|
||||
export { useBankMutations };
|
||||
export {
|
||||
useCreateBankCard,
|
||||
useCreateBankOperation,
|
||||
useCreateExpenseCategory,
|
||||
useDeleteBankOperation,
|
||||
useUpdateBankCard,
|
||||
useUpdateBankOperation,
|
||||
useUpdateExpenseCategory,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user