UNPKG

@overture-stack/lyric

Version:
68 lines (67 loc) 2.97 kB
import { type SubmissionRecordErrorDetails } from '@overture-stack/lyric-data-model/models'; import { BaseDependencies } from '../../config/config.js'; import type { FilenameEntityPair } from '../../utils/schemas.js'; import { type FlattenedSubmissionData } from '../../utils/submissionResponseParser.js'; import { CommitSubmissionResult, type DeleteSubmissionResult, type EntityData, type PaginationOptions, type SubmissionActionType, SubmissionSummary, type SubmitDataResult, type SubmitFileResult } from '../../utils/types.js'; declare const submissionService: (dependencies: BaseDependencies) => { commitSubmission: (categoryId: number, submissionId: number, username: string) => Promise<CommitSubmissionResult>; deleteActiveSubmissionById: (submissionId: number, username: string, force: boolean) => Promise<DeleteSubmissionResult>; deleteActiveSubmissionEntity: (submissionId: number, username: string, filter: { actionType: SubmissionActionType; entityName: string; index: number | null; }) => Promise<SubmitDataResult>; getSubmissionsByCategory: (categoryId: number, paginationOptions: PaginationOptions, filterOptions: { onlyActive: boolean; username?: string; organization?: string; }) => Promise<{ result: SubmissionSummary[]; metadata: { totalRecords: number; errorMessage?: string; }; }>; getSubmissionById: (submissionId: number) => Promise<SubmissionSummary | undefined>; getSubmissionDetailsById: ({ submissionId, paginationOptions, filterOptions, }: { submissionId: number; paginationOptions: PaginationOptions; filterOptions: { entityNames: string[]; actionTypes: SubmissionActionType[]; }; }) => Promise<{ data: FlattenedSubmissionData[]; errors?: SubmissionRecordErrorDetails[]; }>; getActiveSubmissionByOrganization: ({ categoryId, username, organization, }: { categoryId: number; username: string; organization: string; }) => Promise<SubmissionSummary | undefined>; getOrCreateActiveSubmission: (params: { username: string; categoryId: number; organization: string; }) => Promise<number>; submit: ({ data, categoryId, organization, username, }: { data: EntityData; categoryId: number; organization: string; username: string; }) => Promise<SubmitDataResult | { status: "UNKNOWN_CATEGORY"; description: string; }>; submitFiles: ({ files, categoryId, organization, username, fileEntityMap, }: { files: Express.Multer.File[]; categoryId: number; organization: string; username: string; fileEntityMap?: FilenameEntityPair[]; }) => Promise<SubmitFileResult | { status: "UNKNOWN_CATEGORY"; description: string; }>; }; export default submissionService;