Files
lislgosms/src/api/admin/signature-retirement.api.ts
T

106 lines
4.1 KiB
TypeScript

import { request, withQuery } from '../core/httpClient';
import type {
PagedResult,
SignatureActivityResponse,
SignatureAnalyticsMetadata,
SignatureRetirementHeatmapItem,
SignatureRetirementHeatmapDimension,
SignatureRetirementMessage,
SignatureRetirementRule,
SignatureRetirementRuleType,
SignatureRetirementSuppression,
SignatureRetirementWebhook,
UnreportedSignatureItem,
} from '../types';
export const adminSignatureRetirementApi = {
getSignatureActivity: (
query: {
date: string;
dimensionType: 'enterprise' | 'channel';
page: number;
pageSize: number;
tenantName?: string;
applicationName?: string;
signatureName?: string;
channelName?: string;
},
signal?: AbortSignal,
) => request<SignatureActivityResponse>(withQuery('/admin/signature-retirement/activity', query), { signal }),
getSignatureRetirementConfiguration: () =>
request<{ rules: SignatureRetirementRule[]; webhooks: SignatureRetirementWebhook[] }>(
'/admin/signature-retirement/configuration',
),
saveSignatureRetirementRule: (body: {
ruleType: SignatureRetirementRuleType;
targetId?: string;
enabled: boolean;
mobileWindowDays: number;
mobileThreshold: number;
unicomWindowDays: number;
unicomThreshold: number;
telecomWindowDays: number;
telecomThreshold: number;
messageTemplate?: string;
}) =>
request<SignatureRetirementRule>('/admin/signature-retirement/rules', {
method: 'PUT',
body: JSON.stringify(body),
}),
createSignatureRetirementWebhook: (body: { name: string; platform: 'wecom' | 'feishu'; url: string }) =>
request<SignatureRetirementWebhook>('/admin/signature-retirement/webhooks', {
method: 'POST',
body: JSON.stringify(body),
}),
deleteSignatureRetirementWebhook: (id: string) =>
request<SignatureRetirementWebhook>(`/admin/signature-retirement/webhooks/${id}`, { method: 'DELETE' }),
listSignatureRetirementMessages: (
query: {
dateFrom?: string;
dateTo?: string;
dimensionType?: string;
tenantId?: string;
applicationId?: string;
signatureKeyword?: string;
channelId?: string;
page?: number;
pageSize?: number;
} = {},
) => request<PagedResult<SignatureRetirementMessage>>(withQuery('/admin/signature-retirement/messages', query)),
getSignatureRetirementUnreadCount: (signal?: AbortSignal) =>
request<{ count: number }>('/admin/signature-retirement/unread-count', { signal }),
readSignatureRetirementMessage: (id: string) =>
request<SignatureRetirementMessage>(`/admin/signature-retirement/messages/${id}/read`, { method: 'POST' }),
readAllSignatureRetirementMessagesToday: () =>
request<{ count: number }>('/admin/signature-retirement/messages/read-all-today', { method: 'POST' }),
suppressSignatureRetirementMessage: (
id: string,
body: { mode: 'temporary' | 'permanent'; days?: number; reason?: string },
) =>
request<SignatureRetirementSuppression>(`/admin/signature-retirement/messages/${id}/suppress`, {
method: 'POST',
body: JSON.stringify(body),
}),
listSignatureRetirementSuppressions: () =>
request<SignatureRetirementSuppression[]>('/admin/signature-retirement/suppressions'),
cancelSignatureRetirementSuppression: (id: string, reason: string) =>
request<SignatureRetirementSuppression>(`/admin/signature-retirement/suppressions/${id}/cancel`, {
method: 'POST',
body: JSON.stringify({ reason }),
}),
getSignatureRetirementHeatmap: (date?: string) =>
request<{
date: string;
dimensions: SignatureRetirementHeatmapDimension[];
items: SignatureRetirementHeatmapItem[];
}>(withQuery('/admin/signature-retirement/heatmap', { date })),
getUnreportedSignatures: (
query: { date?: string; keyword?: string; page?: number; pageSize?: number } = {},
signal?: AbortSignal,
) =>
request<PagedResult<UnreportedSignatureItem> & { date: string } & SignatureAnalyticsMetadata>(
withQuery('/admin/signature-retirement/unreported-signatures', query),
{ signal },
),
};