@overture-stack/lyric
Version:
Data Submission system
54 lines (53 loc) • 2.27 kB
TypeScript
import type { DataRecord } from '@overture-stack/lectern-client';
import type { SubmissionData, SubmissionDeleteData, SubmissionErrors, SubmissionInsertData, SubmissionRecordErrorDetails, SubmissionUpdateData } from '@overture-stack/lyric-data-model/models';
import { type PaginationOptions, type SubmissionActionType } from './types.js';
export declare const createBatchResponse: (schemaName: string, records: DataRecord[]) => SubmissionInsertData;
export type FlattenedSubmissionData = {
type: 'INSERTS';
entity: string;
value: DataRecord;
index: number;
} | {
type: 'UPDATES';
entity: string;
value: SubmissionUpdateData;
index: number;
} | {
type: 'DELETES';
entity: string;
value: SubmissionDeleteData;
index: number;
};
/**
* Filters and paginates submission `data` and `errors` based on specified action types and entity names.
* Returns the paginated data along with the corresponding filtered errors.
*/
export declare const filterAndPaginateSubmissionData: ({ data, errors, filterOptions, paginationOptions, }: {
data: SubmissionData;
errors: SubmissionErrors;
filterOptions: {
actionTypes: SubmissionActionType[];
entityNames: string[];
};
paginationOptions: PaginationOptions;
}) => {
data: FlattenedSubmissionData[];
errors: SubmissionRecordErrorDetails[];
};
/**
* Retrieves the set of submission data corresponding to a specific action type.
*/
export declare const getActionData: (data: SubmissionData, actionType: SubmissionActionType) => Record<string, SubmissionUpdateData[]> | Record<string, SubmissionDeleteData[]> | Record<string, SubmissionInsertData>;
/**
* Retrieves the set of submission errors corresponding to a specific action type.
*/
export declare const getActionErrors: (errors: SubmissionErrors, actionType: SubmissionActionType) => Record<string, SubmissionRecordErrorDetails[]>;
/**
* Filters submission errors based on specified action types, entity names, and record indices.
*/
export declare const getFilteredErrors: ({ errors, actionTypes, entityNames, indices, }: {
errors: SubmissionErrors;
actionTypes: SubmissionActionType[];
entityNames: string[];
indices: number[];
}) => SubmissionRecordErrorDetails[];