Skip to content

Commit ef40ac9

Browse files
refactor(business-reports): update terminology and structures for monitoring
- Rename monitoring functions and types to reflect website context - Adjust API endpoints and payload structures for clarity - Update schema definitions and client-side usages to align with changes
1 parent c704f71 commit ef40ac9

File tree

12 files changed

+46
-47
lines changed

12 files changed

+46
-47
lines changed

apps/backoffice-v2/src/domains/business-reports/fetchers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const BusinessReportSchema = ReportSchema.transform(data => {
2828
return {
2929
...data,
3030
status: data.status in statusOverrides ? statusOverrides[data.status] : data.status,
31-
website: data.website.url,
31+
website: data.website,
3232
riskLevel: isReportReady ? data.riskLevel : null,
3333
data: isReportReady ? data?.data : null,
3434
isExample: data.metadata?.isExample ?? false,

apps/backoffice-v2/src/pages/IdentityVerification/components/IdentityVerificationChecksStatus/IdentityVerificationChecksStatus.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import { toast } from 'sonner';
4040
import { t } from 'i18next';
4141
import { getNoteContentForUnsubscribe } from './helpers/get-note-content-for-unsubscribe';
4242
import { getBaseNoteContent } from './helpers/get-base-note-content';
43-
import { useToggleMonitoringMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
43+
import { useUpdateOngoingMonitoringStatusMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
4444
import { IdentityVerificationChecksButton } from './IdentityVerificationChecksButton';
4545
import { useIdentityVerificationDialog } from './hooks/useIdentityVerificationDialog/useIdentityVerificationDialog';
4646
import { IdentityVerificationChecksBadge } from './IdentityVerificationChecksBadge';
@@ -70,8 +70,8 @@ export const IdentityVerificationChecksStatus = ({
7070
const { mutate: mutateUpdateReportStatus, isLoading: isUpdatingReportStatus } =
7171
useUpdateReportStatusMutation();
7272
const { mutateAsync: turnOffMonitoringMutation, isLoading: isTurningOffMonitoring } =
73-
useToggleMonitoringMutation({
74-
state: 'off',
73+
useUpdateOngoingMonitoringStatusMutation({
74+
status: 'inactive',
7575
onSuccess: () => {
7676
form.reset();
7777
toast.success(t(`toast:business_monitoring_off.success`));

apps/backoffice-v2/src/pages/MerchantMonitoring/components/MerchantMonitoringReportStatus/MerchantMonitoringReportStatus.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import { toast } from 'sonner';
4242
import { t } from 'i18next';
4343
import { getNoteContentForUnsubscribe } from './helpers/get-note-content-for-unsubscribe';
4444
import { getBaseNoteContent } from './helpers/get-base-note-content';
45-
import { useToggleMonitoringMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
45+
import { useUpdateOngoingMonitoringStatusMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
4646

4747
/* TODO: Remove this filtering once completed status is removed */
4848
const UPDATEABLE_REPORT_STATUSES = _UPDATEABLE_REPORT_STATUSES.filter(
@@ -57,20 +57,20 @@ export const MerchantMonitoringReportStatus = ({
5757
status,
5858
reportId,
5959
className,
60-
businessId,
60+
websiteId,
6161
}: {
6262
reportId?: string;
6363
className?: string;
64-
businessId?: string;
64+
websiteId?: string;
6565
status?: keyof typeof statusToData;
6666
}) => {
6767
const { mutateAsync: mutateCreateNote } = useCreateNoteMutation({ disableToast: true });
6868

6969
const { mutate: mutateUpdateReportStatus, isLoading: isUpdatingReportStatus } =
7070
useUpdateReportStatusMutation();
7171
const { mutateAsync: turnOffMonitoringMutation, isLoading: isTurningOffMonitoring } =
72-
useToggleMonitoringMutation({
73-
state: 'off',
72+
useUpdateOngoingMonitoringStatusMutation({
73+
status: 'inactive',
7474
onSuccess: () => {
7575
form.reset();
7676
toast.success(t(`toast:business_monitoring_off.success`));
@@ -119,14 +119,14 @@ export const MerchantMonitoringReportStatus = ({
119119
: getBaseNoteContent(statusReadableText, text);
120120

121121
if (isShouldUnsubscribe) {
122-
await turnOffMonitoringMutation(businessId ?? '');
122+
await turnOffMonitoringMutation(websiteId ?? '');
123123
}
124124

125125
mutateUpdateReportStatus({ reportId, status: dialogState.status, text });
126126

127127
void mutateCreateNote({
128128
content: noteContent,
129-
entityId: businessId ?? '',
129+
entityId: websiteId ?? '',
130130
entityType: 'Business',
131131
noteableId: reportId ?? '',
132132
noteableType: 'Report',

apps/backoffice-v2/src/pages/MerchantMonitoring/components/MerchantMonitoringTable/columns.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ export const useColumns = ({ isDemoAccount = false }) => {
194194
return (
195195
<ContentTooltip
196196
description={
197-
<p>This merchant is {!value && 'not '}subscribed to recurring ongoing monitoring</p>
197+
<p>This website is {!value && 'not '}subscribed to recurring ongoing monitoring</p>
198198
}
199199
props={{
200200
tooltipTrigger: { className: 'flex w-full justify-start' },
@@ -225,7 +225,7 @@ export const useColumns = ({ isDemoAccount = false }) => {
225225
},
226226
header: () => (
227227
<ContentTooltip
228-
description={<p>Indicates whether the merchant is subscribed to ongoing monitoring</p>}
228+
description={<p>Indicates whether the website is subscribed to ongoing monitoring</p>}
229229
props={{
230230
tooltipTrigger: { className: 'mx-auto' },
231231
tooltipContent: { align: 'center', side: 'top' },

apps/backoffice-v2/src/pages/MerchantMonitoringBusinessReport/BusinessReportOptionsDropdown.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ export const BusinessReportOptionsDropdown: FunctionComponent<
221221
throw new Error('Business ID is missing');
222222
}
223223

224-
turnOngoingMonitoringOn(businessReport.business.id, {
224+
turnOngoingMonitoringOn(businessReport.website.id, {
225225
onSuccess: () => {
226226
setIsDeboardModalOpen(false);
227227
setIsDropdownOpen(false);

apps/backoffice-v2/src/pages/MerchantMonitoringBusinessReport/MerchantMonitoringBusinessReport.page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export const MerchantMonitoringBusinessReport: FunctionComponent = () => {
183183
<MerchantMonitoringReportStatus
184184
reportId={businessReport?.id}
185185
status={businessReport?.status}
186-
businessId={businessReport?.business.id}
186+
websiteId={businessReport?.website.id}
187187
/>
188188
</div>
189189
<div className={`text-sm`}>

apps/backoffice-v2/src/pages/MerchantMonitoringBusinessReport/fetchers.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,26 @@ import { Method } from '@/common/enums';
44
import { apiClient } from '@/common/api-client/api-client';
55
import { handleZodError } from '@/common/utils/handle-zod-error/handle-zod-error';
66

7-
export type TurnOngoingMonitoringBody = z.infer<typeof TurnOngoingMonitoringBodySchema>;
8-
export const TurnOngoingMonitoringBodySchema = z.object({
9-
state: z.string(),
7+
export const UpdateOngoingMonitoringStatusBodySchema = z.object({
8+
status: z.enum(['active', 'inactive']),
109
});
1110

12-
export type TurnOngoingMonitoringResponse = z.infer<typeof TurnOngoingMonitoringResponseSchema>;
13-
export const TurnOngoingMonitoringResponseSchema = z.object({
14-
state: z.string(),
15-
});
11+
export type UpdateOngoingMonitoringStatusBody = z.infer<
12+
typeof UpdateOngoingMonitoringStatusBodySchema
13+
>;
1614

17-
export const turnOngoingMonitoring = async ({
18-
merchantId,
15+
export const updateOngoingMonitoringStatus = async ({
16+
websiteId,
1917
body,
2018
}: {
21-
merchantId: string;
22-
body: TurnOngoingMonitoringBody;
19+
websiteId: string;
20+
body: UpdateOngoingMonitoringStatusBody;
2321
}) => {
2422
const [data, error] = await apiClient({
25-
endpoint: `../external/businesses/${merchantId}/monitoring`,
23+
endpoint: `../external/business-reports/websites/${websiteId}/monitoring`,
2624
method: Method.PATCH,
2725
body,
28-
schema: TurnOngoingMonitoringResponseSchema,
26+
schema: z.undefined(),
2927
timeout: 300_000,
3028
});
3129

apps/backoffice-v2/src/pages/MerchantMonitoringBusinessReport/hooks/useMerchantMonitoringBusinessReportLogic/useMerchantMonitoringBusinessReportLogic.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { useCustomerQuery } from '@/domains/customer/hooks/queries/useCustomerQu
2020
import { useNotesByNoteable } from '@/domains/notes/hooks/queries/useNotesByNoteable/useNotesByNoteable';
2121
import { useCreateNoteMutation } from '@/domains/notes/hooks/mutations/useCreateNoteMutation/useCreateNoteMutation';
2222
import { useBusinessReportByIdQuery } from '@/domains/business-reports/hooks/queries/useBusinessReportByIdQuery/useBusinessReportByIdQuery';
23-
import { useToggleMonitoringMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
23+
import { useUpdateOngoingMonitoringStatusMutation } from '@/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation';
2424

2525
const ZodDeboardingSchema = z
2626
.object({
@@ -85,12 +85,12 @@ export const useMerchantMonitoringBusinessReportLogic = () => {
8585
throw new Error('Business ID is missing');
8686
}
8787

88-
return turnOffMonitoringMutation.mutate(businessReport.business.id);
88+
return turnOffMonitoringMutation.mutate(businessReport.website.id);
8989
};
9090

9191
const { mutateAsync: mutateCreateNote } = useCreateNoteMutation({ disableToast: true });
92-
const turnOnMonitoringMutation = useToggleMonitoringMutation({
93-
state: 'on',
92+
const turnOnMonitoringMutation = useUpdateOngoingMonitoringStatusMutation({
93+
status: 'active',
9494
onSuccess: () => {
9595
void mutateCreateNote({
9696
content: 'Monitoring turned on',
@@ -111,8 +111,8 @@ export const useMerchantMonitoringBusinessReportLogic = () => {
111111
},
112112
});
113113

114-
const turnOffMonitoringMutation = useToggleMonitoringMutation({
115-
state: 'off',
114+
const turnOffMonitoringMutation = useUpdateOngoingMonitoringStatusMutation({
115+
status: 'inactive',
116116
onSuccess: () => {
117117
const { reason, userReason } = form.getValues();
118118
const content = [

apps/backoffice-v2/src/pages/MerchantMonitoringBusinessReport/hooks/useToggleMonitoringMutation/useToggleMonitoringMutation.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@ import { useMutation, useQueryClient } from '@tanstack/react-query';
22
import { toast } from 'sonner';
33

44
import { HttpError } from '@/common/errors/http-error';
5-
import { turnOngoingMonitoring } from '@/pages/MerchantMonitoringBusinessReport/fetchers';
5+
import { updateOngoingMonitoringStatus } from '@/pages/MerchantMonitoringBusinessReport/fetchers';
66

7-
export const useToggleMonitoringMutation = ({
8-
state,
7+
export const useUpdateOngoingMonitoringStatusMutation = ({
8+
status,
99
onSuccess,
1010
onError,
1111
}: {
12-
state: 'on' | 'off';
12+
status: 'active' | 'inactive';
1313
onSuccess?: (data: unknown) => void;
1414
onError?: (error: unknown) => void;
1515
}) => {
1616
const queryClient = useQueryClient();
1717

1818
return useMutation({
19-
mutationFn: async (merchantId: string) =>
20-
turnOngoingMonitoring({ merchantId, body: { state } }),
19+
mutationFn: async (websiteId: string) =>
20+
updateOngoingMonitoringStatus({ websiteId, body: { status } }),
2121
onSuccess: data => {
2222
void queryClient.invalidateQueries();
2323

packages/common/src/schemas/report-schema.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ export const ReportSchema = z
8181
status: z.enum([MERCHANT_REPORT_STATUSES[0]!, ...MERCHANT_REPORT_STATUSES.slice(1)]),
8282
monitoringStatus: z.boolean().nullish(),
8383
website: z.object({
84+
id: z.string(),
8485
url: z.string().url(),
86+
unsubscribedMonitoringAt: z.string().datetime().nullable(),
8587
}),
8688
customer: z.object({
8789
id: z.string(),
@@ -91,7 +93,6 @@ export const ReportSchema = z
9193
business: z.object({
9294
id: z.string(),
9395
correlationId: z.string().nullish(),
94-
unsubscribedMonitoringAt: z.string().datetime().nullable(),
9596
}),
9697
metadata: z.record(z.string(), z.unknown()).nullish(),
9798
companyName: z.string().nullish(),

0 commit comments

Comments
 (0)