|
| 1 | +import { AxiosResponse } from 'axios' |
| 2 | +import { |
| 3 | + FileVersionSummaryInfo, |
| 4 | + FileMetadataChange, |
| 5 | + FileDifferenceSummary |
| 6 | +} from '../../../domain/models/FileVersionSummaryInfo' |
| 7 | +import { DatasetVersionState } from '../../../../datasets/domain/models/Dataset' |
| 8 | + |
| 9 | +export interface FileVersionSummaryInfoPayload { |
| 10 | + datasetVersion: string |
| 11 | + contributors?: string |
| 12 | + publishedDate?: string |
| 13 | + fileDifferenceSummary?: { |
| 14 | + file?: string |
| 15 | + FileAccess?: string |
| 16 | + FileMetadata?: FileMetadataChange[] |
| 17 | + deaccessionedReason?: string |
| 18 | + FileTags?: { |
| 19 | + Added?: number |
| 20 | + Deleted?: number |
| 21 | + Changed?: number |
| 22 | + } |
| 23 | + } |
| 24 | + versionState?: DatasetVersionState |
| 25 | + datafileId: number |
| 26 | + persistentId?: string |
| 27 | + versionNote?: string |
| 28 | +} |
| 29 | + |
| 30 | +export const transformFileVersionSummaryInfoResponseToFileVersionSummaryInfo = ( |
| 31 | + response: AxiosResponse |
| 32 | +): FileVersionSummaryInfo[] => { |
| 33 | + const payload = response.data.data |
| 34 | + |
| 35 | + return payload.map((item: FileVersionSummaryInfoPayload): FileVersionSummaryInfo => { |
| 36 | + const summary = item.fileDifferenceSummary || {} |
| 37 | + |
| 38 | + const fileDifferenceSummary: FileDifferenceSummary = { |
| 39 | + ...(summary.file && { file: summary.file }), |
| 40 | + ...(summary.FileAccess && { fileAccess: summary.FileAccess }), |
| 41 | + ...(summary.FileMetadata && { fileMetadata: summary.FileMetadata }), |
| 42 | + ...(summary.deaccessionedReason && { deaccessionedReason: summary.deaccessionedReason }), |
| 43 | + ...(summary.FileTags && { fileTags: summary.FileTags }) |
| 44 | + } as FileDifferenceSummary |
| 45 | + |
| 46 | + return { |
| 47 | + datasetVersion: item.datasetVersion, |
| 48 | + contributors: item.contributors, |
| 49 | + publishedDate: item.publishedDate, |
| 50 | + fileDifferenceSummary: fileDifferenceSummary, |
| 51 | + versionState: item.versionState, |
| 52 | + datafileId: item.datafileId, |
| 53 | + persistentId: item.persistentId, |
| 54 | + versionNote: item.versionNote |
| 55 | + } |
| 56 | + }) |
| 57 | +} |
0 commit comments