import { defHttp } from '#/api/request';
|
|
export interface RecordDocument {
|
fileExtension?: string;
|
fileId: string;
|
fileSize?: number | string;
|
name: string;
|
}
|
|
export interface RecordCreated {
|
document: RecordDocument;
|
existing: boolean;
|
recordId: string;
|
revisionId: string;
|
}
|
|
export type RecordBatchItemStatus = 'CREATED' | 'EXISTING' | 'FAILED';
|
|
export interface RecordBatchItem {
|
created?: RecordCreated;
|
errorCode?: string;
|
errorMessage?: string;
|
status: RecordBatchItemStatus;
|
testWorkItemId: string;
|
}
|
|
export interface RecordBatchCreated {
|
items: RecordBatchItem[];
|
}
|
|
export interface SharedFillField {
|
conflictingValues: boolean;
|
dataType: string;
|
defaultExcludedTestWorkItemIds: string[];
|
fieldCode: string;
|
fieldName: string;
|
fieldVersionId: string;
|
targetTestWorkItemIds: string[];
|
unit?: string;
|
}
|
|
export interface SharedFillTarget {
|
currentValues: Record<string, string | undefined>;
|
eligible: boolean;
|
errorCode?: string;
|
errorMessage?: string;
|
recordId?: string;
|
recordVersion?: number;
|
revisionId?: string;
|
testWorkItemId: string;
|
testWorkItemName?: string;
|
}
|
|
export interface SharedFillPreview {
|
fields: SharedFillField[];
|
previewToken: string;
|
targets: SharedFillTarget[];
|
testDefinitionCode: string;
|
testDefinitionId: string;
|
testDefinitionName?: string;
|
}
|
|
export interface SharedFillValueCommand {
|
fieldVersionId: string;
|
value: string;
|
}
|
|
export interface SharedFillTargetCommand {
|
expectedRecordVersion: number;
|
overwrite: boolean;
|
overwriteReason?: string;
|
recordId: string;
|
testWorkItemId: string;
|
}
|
|
export interface SharedFillExecuteCommand {
|
operationCode: string;
|
previewToken: string;
|
targets: SharedFillTargetCommand[];
|
testWorkItemIds: string[];
|
values: SharedFillValueCommand[];
|
}
|
|
export interface SharedFillTargetResult {
|
errorCode?: string;
|
errorMessage?: string;
|
recalculatedCount: number;
|
recordId: string;
|
recordVersion: number;
|
status: 'COMMITTED' | 'REJECTED' | 'UNCHANGED';
|
testWorkItemId: string;
|
}
|
|
export interface SharedFilled {
|
fieldVersionIds: string[];
|
operationCode: string;
|
targets: SharedFillTargetResult[];
|
}
|
|
interface ApiResult<T> {
|
code: number;
|
data: T;
|
msg?: string;
|
}
|
|
const RECORD_PREFIX = '/api/eln/records';
|
|
export function getRecordByTestWorkItem(testWorkItemId: string) {
|
return defHttp.get<ApiResult<RecordCreated>>({
|
url: `${RECORD_PREFIX}/byTestWorkItem/${encodeURIComponent(testWorkItemId)}`,
|
});
|
}
|
|
export function createRecordsBatch(data: { operationCode: string; testWorkItemIds: string[] }) {
|
return defHttp.post<ApiResult<RecordBatchCreated>>({ data, url: `${RECORD_PREFIX}/batch` });
|
}
|
|
export function previewSharedFill(data: { testWorkItemIds: string[] }) {
|
return defHttp.post<ApiResult<SharedFillPreview>>({ data, url: `${RECORD_PREFIX}/sharedFill/preview` });
|
}
|
|
export function executeSharedFill(data: SharedFillExecuteCommand) {
|
return defHttp.post<ApiResult<SharedFilled>>({ data, url: `${RECORD_PREFIX}/sharedFill/execute` });
|
}
|