Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/add-comment.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { serialize } from 'object-to-formdata';
import z from 'zod/v4';

Expand All @@ -16,14 +16,19 @@ export type AddCommentPayload = z.infer<typeof addCommentPayloadSchema>;
const endpoint = getRoute('/ressources/cases/add-comment');

export const useAddCommentMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'add-comment'],
mutationKey: ['cases', 'add-comment'],
mutationFn: async (payload: AddCommentPayload) => {
const response = await fetch(endpoint, {
method: 'POST',
body: serialize(payload, { indices: true }),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/add-rule-snooze.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const durationUnitOptions = ['hours', 'days', 'weeks'] as const;
Expand All @@ -17,14 +17,19 @@ export type AddRuleSnoozePayload = z.infer<typeof addRuleSnoozePayloadSchema>;
const endpoint = getRoute('/ressources/cases/add-rule-snooze');

export const useAddRuleSnoozeMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'add-rule-snooze'],
mutationKey: ['cases', 'add-rule-snooze'],
mutationFn: async (payload: AddRuleSnoozePayload) => {
const response = await fetch(endpoint, {
method: 'POST',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
6 changes: 5 additions & 1 deletion packages/app-builder/src/queries/cases/add-to-case.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useAgnosticNavigation } from '@app-builder/contexts/AgnosticNavigationContext';
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const addToCasePayloadSchema = z.discriminatedUnion('newCase', [
Expand All @@ -23,6 +23,7 @@ const endpoint = getRoute('/ressources/cases/add-to-case');

export const useAddToCaseMutation = () => {
const navigate = useAgnosticNavigation();
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'add-to-case'],
Expand All @@ -41,5 +42,8 @@ export const useAddToCaseMutation = () => {

return result;
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
7 changes: 6 additions & 1 deletion packages/app-builder/src/queries/cases/close-case.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { finalOutcomes } from '@app-builder/models/cases';
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import z from 'zod/v4';

export const closeCasePayloadSchema = z.object({
Expand All @@ -14,6 +14,8 @@ export type CloseCasePayload = z.infer<typeof closeCasePayloadSchema>;
const endpoint = getRoute('/ressources/cases/close-case');

export const useCloseCaseMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'close-case'],
mutationFn: async (payload: CloseCasePayload) => {
Expand All @@ -24,5 +26,8 @@ export const useCloseCaseMutation = () => {

return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
7 changes: 6 additions & 1 deletion packages/app-builder/src/queries/cases/create-case.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useAgnosticNavigation } from '@app-builder/contexts/AgnosticNavigationContext';
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const createCasePayloadSchema = z.object({
Expand All @@ -14,8 +14,10 @@ const endpoint = getRoute('/ressources/cases/create-case');

export const useCreateCaseMutation = () => {
const navigate = useAgnosticNavigation();
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'create-case'],
mutationFn: async (payload: CreateCasePayload) => {
const response = await fetch(endpoint, {
method: 'POST',
Expand All @@ -29,5 +31,8 @@ export const useCreateCaseMutation = () => {

return result;
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useQuery } from '@tanstack/react-query';

export const useCreateKycEnrichmentQuery = (caseId: string) =>
useQuery({
queryKey: ['case', 'create-kyc-enrichment', caseId],
export const useCreateKycEnrichmentQuery = (caseId: string) => {
return useQuery({
queryKey: ['cases', 'create-kyc-enrichment', caseId],
queryFn: async () =>
fetch(`/ressources/cases/${caseId}/enrich-kyc`, {
method: 'POST',
Expand All @@ -11,3 +11,4 @@ export const useCreateKycEnrichmentQuery = (caseId: string) =>
enabled: false,
staleTime: Infinity,
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/edit-assignee.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const editAssigneePayloadSchema = z.object({
Expand All @@ -12,14 +12,19 @@ export type EditAssigneePayload = z.infer<typeof editAssigneePayloadSchema>;
const endpoint = getRoute('/ressources/cases/edit-assignee');

export const useEditAssigneeMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'edit-assignee'],
mutationKey: ['cases', 'edit-assignee'],
mutationFn: async (payload: EditAssigneePayload) => {
const response = await fetch(endpoint, {
method: 'POST',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/edit-inbox.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const editInboxPayloadSchema = z.object({ inboxId: z.string(), caseId: z.string() });
Expand All @@ -9,14 +9,19 @@ export type EditInboxPayload = z.infer<typeof editInboxPayloadSchema>;
const endpoint = getRoute('/ressources/cases/edit-inbox');

export const useEditInboxMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'edit-inbox'],
mutationKey: ['cases', 'edit-inbox'],
mutationFn: async (payload: EditInboxPayload) => {
const response = await fetch(endpoint, {
method: 'PATCH',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/edit-name.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const editNamePayloadSchema = z.object({ name: z.string(), caseId: z.string() });
Expand All @@ -9,14 +9,19 @@ export type EditNamePayload = z.infer<typeof editNamePayloadSchema>;
const endpoint = getRoute('/ressources/cases/edit-name');

export const useEditNameMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'edit-name'],
mutationKey: ['cases', 'edit-name'],
mutationFn: async (payload: EditNamePayload) => {
const response = await fetch(endpoint, {
method: 'PATCH',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/edit-suspicion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
suspiciousActivityReportStatuses,
} from '@app-builder/models/cases';
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { serialize } from 'object-to-formdata';
import { z } from 'zod/v4';

Expand Down Expand Up @@ -39,14 +39,19 @@ export type EditSuspicionPayload = z.infer<typeof editSuspicionPayloadSchema>;
const endpoint = getRoute('/ressources/cases/edit-suspicion');

export const useEditSuspicionMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'edit-suspicion'],
mutationKey: ['cases', 'edit-suspicion'],
mutationFn: async (payload: EditSuspicionPayload) => {
const response = await fetch(endpoint, {
method: 'PATCH',
body: serialize(payload),
});
return response.json() as Promise<EditSuspicionResponse>;
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
9 changes: 7 additions & 2 deletions packages/app-builder/src/queries/cases/edit-tags.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const editTagsPayloadSchema = z.object({
Expand All @@ -12,14 +12,19 @@ export type EditTagsPayload = z.infer<typeof editTagsPayloadSchema>;
const endpoint = getRoute('/ressources/cases/edit-tags');

export const useEditTagsMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['case', 'edit-tags'],
mutationKey: ['cases', 'edit-tags'],
mutationFn: async (payload: EditTagsPayload) => {
const response = await fetch(endpoint, {
method: 'PATCH',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
7 changes: 6 additions & 1 deletion packages/app-builder/src/queries/cases/escalate-case.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import { useAgnosticNavigation } from '@app-builder/contexts/AgnosticNavigationContext';
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const escalateCasePayloadSchema = z.object({ caseId: z.string(), inboxId: z.string() });

export const useEscalateCaseMutation = () => {
const navigate = useAgnosticNavigation();
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'escalate-case'],
mutationFn: async (payload: z.infer<typeof escalateCasePayloadSchema>) => {
const response = await fetch(getRoute('/ressources/cases/escalate-case'), {
method: 'POST',
Expand All @@ -23,5 +25,8 @@ export const useEscalateCaseMutation = () => {

return result;
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
7 changes: 6 additions & 1 deletion packages/app-builder/src/queries/cases/mass-update.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const massUpdateCasesPayloadSchema = z.union([
Expand Down Expand Up @@ -38,6 +38,8 @@ export type MassUpdateCasesPayload = z.input<typeof massUpdateCasesPayloadSchema
const endpoint = getRoute('/ressources/cases/mass-update');

export const useMassUpdateCasesMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'mass-update'],
mutationFn: async (payload: MassUpdateCasesPayload) => {
Expand All @@ -48,5 +50,8 @@ export const useMassUpdateCasesMutation = () => {

return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
8 changes: 7 additions & 1 deletion packages/app-builder/src/queries/cases/open-case.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const openCasePayloadSchema = z.object({
Expand All @@ -12,7 +12,10 @@ export type OpenCasePayload = z.infer<typeof openCasePayloadSchema>;
const endpoint = getRoute('/ressources/cases/open-case');

export const useOpenCaseMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'open-case'],
mutationFn: async (payload: OpenCasePayload) => {
const response = await fetch(endpoint, {
method: 'POST',
Expand All @@ -21,5 +24,8 @@ export const useOpenCaseMutation = () => {

return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};
8 changes: 7 additions & 1 deletion packages/app-builder/src/queries/cases/snooze-case.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getRoute } from '@app-builder/utils/routes';
import { useMutation } from '@tanstack/react-query';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { z } from 'zod/v4';

export const snoozeCasePayloadSchema = z.object({
Expand All @@ -12,13 +12,19 @@ export type SnoozeCasePayload = z.infer<typeof snoozeCasePayloadSchema>;
const endpoint = getRoute('/ressources/cases/snooze-case');

export const useSnoozeCaseMutation = () => {
const queryClient = useQueryClient();

return useMutation({
mutationKey: ['cases', 'snooze-case'],
mutationFn: async (payload: SnoozeCasePayload) => {
const response = await fetch(endpoint, {
method: 'POST',
body: JSON.stringify(payload),
});
return response.json();
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['cases'] });
},
});
};