Skip to content

Commit

Permalink
add uploaded file workaround until js-dataverse implementation is fin…
Browse files Browse the repository at this point in the history
…alized
  • Loading branch information
ErykKul committed Jul 20, 2024
1 parent bb68210 commit 7d889e4
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 36 deletions.
7 changes: 6 additions & 1 deletion src/files/domain/repositories/FileRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,10 @@ export interface FileRepository {
abortController: AbortController,
storageIdSetter: (storageId: string) => void
) => Promise<void>
addUploadedFile: (datasetId: number | string, files: FileUploadState[]) => Promise<void[]>
addUploadedFiles: (datasetId: number | string, files: FileUploadState[]) => Promise<void>
addUploadedFile: (
datasetId: number | string,
file: FileHolder,
storageId: string
) => Promise<void>
}
17 changes: 16 additions & 1 deletion src/files/domain/useCases/addUploadedFiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,22 @@ export function addUploadedFiles(
done: () => void
): void {
fileRepository
.addUploadedFile(datasetId, files)
.addUploadedFiles(datasetId, files)
.catch((error: Error) => {
throw new Error(error.message)
})
.finally(done)
}

export function addUploadedFile(
fileRepository: FileRepository,
datasetId: number | string,
file: File,
storageId: string,
done: () => void
): void {
fileRepository
.addUploadedFile(datasetId, { file: file }, storageId)
.catch((error: Error) => {
throw new Error(error.message)
})
Expand Down
38 changes: 7 additions & 31 deletions src/files/infrastructure/FileJSDataverseRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -301,36 +301,12 @@ export class FileJSDataverseRepository implements FileRepository {
})
}

addUploadedFile(datasetId: number | string, files: FileUploadState[]): Promise<void[]> {
const all: Promise<void>[] = []
files.forEach((file) => {
const f: FileHolder = {
file: {
lastModified: file.fileLastModified,
name: file.fileName,
webkitRelativePath: file.fileDir ? file.fileDir + '/' + file.fileName : file.fileName,
size: file.fileSize,
type: file.fileType,
arrayBuffer: function (): Promise<ArrayBuffer> {
throw new Error('Function not implemented.')
},
slice: function (
_start?: number | undefined,
_end?: number | undefined,
_contentType?: string | undefined
): Blob {
throw new Error('Function not implemented.')
},
stream: function (): ReadableStream<Uint8Array> {
throw new Error('Function not implemented.')
},
text: function (): Promise<string> {
throw new Error('Function not implemented.')
}
}
}
all.push(addUploadedFileToDataset.execute(datasetId, f.file, file.storageId as string))
})
return Promise.all(all)
addUploadedFiles(_datasetId: number | string, _files: FileUploadState[]): Promise<void> {
// TODO: not yet implemented
return new Promise<void>(() => {})
}

addUploadedFile(datasetId: number | string, file: FileHolder, storageId: string): Promise<void> {
return addUploadedFileToDataset.execute(datasetId, file.file, storageId)
}
}
9 changes: 8 additions & 1 deletion src/sections/upload-dataset-files/UploadDatasetFiles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { FileUploader } from './FileUploader'
import { FileUploadState, FileUploadTools } from '../../files/domain/models/FileUploadState'
import { uploadFile } from '../../files/domain/useCases/uploadFile'
import { UploadedFiles } from './uploaded-files-list/UploadedFiles'
import { addUploadedFiles } from '../../files/domain/useCases/addUploadedFiles'
import { addUploadedFile, addUploadedFiles } from '../../files/domain/useCases/addUploadedFiles'

interface UploadDatasetFilesProps {
fileRepository: FileRepository
Expand Down Expand Up @@ -71,6 +71,13 @@ export const UploadDatasetFiles = ({ fileRepository: fileRepository }: UploadDat
() => {
setState(FileUploadTools.done(file, fileUploaderState))
fileUploadFinished(file)
addUploadedFile(
fileRepository,
dataset?.persistentId as string,
file,
FileUploadTools.get(file, fileUploaderState).storageId as string,
() => {}
)
},
() => {
setState(FileUploadTools.failed(file, fileUploaderState))
Expand Down
16 changes: 14 additions & 2 deletions src/stories/file/FileMockRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,22 @@ export class FileMockRepository implements FileRepository {
return res()
}

addUploadedFile(_datasetId: number | string, _files: FileUploadState[]): Promise<void[]> {
addUploadedFiles(_datasetId: number | string, _files: FileUploadState[]): Promise<void> {
return new Promise((resolve) => {
setTimeout(() => {
resolve([])
resolve()
}, FakerHelper.loadingTimout())
})
}

addUploadedFile(
_datasetId: number | string,
_file: FileHolder,
_storageId: string
): Promise<void> {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, FakerHelper.loadingTimout())
})
}
Expand Down

0 comments on commit 7d889e4

Please sign in to comment.