Files
dh-inspeccion-v2/web-v2/src/lib/findingCatalogMerge.ts
T

63 lines
1.5 KiB
TypeScript

import { apiRequest } from './api';
export interface FindingCatalogMergeItem {
id: string;
categoryId: string;
categoryCode: string;
categoryName: string;
code: string;
sourceNumber: number;
title: string;
legalBasis: string | null;
glossary: string | null;
importNote: string | null;
suggestedSeverity: number | null;
revision: number;
isActive: boolean;
}
export interface FindingCatalogMergeAlias {
id: string;
code: string;
title: string;
reason: string;
mergedAt: string;
depth: number;
}
export interface FindingCatalogMergeStatus {
requested: FindingCatalogMergeItem;
isMerged: boolean;
canonical: FindingCatalogMergeItem;
aliases: FindingCatalogMergeAlias[];
}
export interface FindingCatalogMergeResult {
merge: {
id: string;
sourceItemId: string;
canonicalItemId: string;
reason: string;
mergedAt: string;
mergedBy: string;
requestId: string;
};
source: FindingCatalogMergeItem;
canonical: FindingCatalogMergeItem;
historyPolicy: 'EMITTED_FINDINGS_PRESERVED';
}
export function getFindingCatalogMergeStatus(itemId: string) {
return apiRequest<FindingCatalogMergeStatus>(`/finding-catalog/items/${itemId}/merge-status`);
}
export function mergeFindingCatalogItem(
sourceItemId: string,
input: { canonicalItemId: string; reason: string },
) {
return apiRequest<FindingCatalogMergeResult>(`/finding-catalog/items/${sourceItemId}/merge`, {
method: 'POST',
body: JSON.stringify(input),
});
}