Skip to content

Commit

Permalink
feat: fix testcase, and add updateFileMetadata to usecases.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ChengShi-1 committed Jan 31, 2025
1 parent 81255e0 commit 8c19b88
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 17 deletions.
37 changes: 37 additions & 0 deletions docs/useCases.md
Original file line number Diff line number Diff line change
Expand Up @@ -1125,6 +1125,43 @@ The following error might arise from the `AddUploadedFileToDataset` use case:

- AddUploadedFileToDatasetError: This error indicates that there was an error while adding the uploaded file to the dataset.

#### Updating File Metadata Use Cases

This use case is designed to update or edit metadata information for a specific file by a numeric identifier or persistemt identifier.

##### Update File Metadata

###### Example call:

```typescript
import { updateFileMetadata } from '@iqss/dataverse-client-javascript'

/* ... */

const fileId: number | string = 123
const updateFileMetadataDTO = {
description: 'My description bbb.',
categories: ['Data'],
restrict: false
}

await updateFileMetadata.execute(fileId, updateFileMetadataDTO).then((fileId) => {
console.log(`File updated successfully with file ID: ${fileId}`)
})

/* ... */
```

_See [use case](../src/files/domain/useCases/UpdateFileMetadata.ts) implementation_.

This use case supports the following optional parameters for updateFileMetadataDTO:

- **description**: (string)
- **prevFreeform**: (string)
- **categories**: (string[])
- **dataFileTags**: (string[])
- **restrict**: (boolean)

## Metadata Blocks

### Metadata Blocks read use cases
Expand Down
18 changes: 1 addition & 17 deletions test/integration/files/FilesRepository.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import {
deleteCollectionViaApi,
setStorageDriverViaApi
} from '../../testHelpers/collections/collectionHelper'
import { getFileMetadata } from '../../testHelpers/files/filesHelper'

describe('FilesRepository', () => {
const sut: FilesRepository = new FilesRepository()
Expand Down Expand Up @@ -650,30 +649,15 @@ describe('FilesRepository', () => {

describe('updateFileMetadata', () => {
test('should update file metadata when file exists', async () => {
const getDatasetFiles = await sut.getDatasetFiles(
testDatasetIds.numericId,
latestDatasetVersionId,
false,
FileOrderCriteria.NAME_AZ
)
const fileid = getDatasetFiles.files[0].id
console.log('updateFileMetadata fileid', fileid)
const testFileMetadata = {
description: 'My description bbb.',
categories: ['Data'],
restrict: false
}

const actual = await sut.updateFileMetadata(fileid, testFileMetadata)
const getFileMetadataResult = await getFileMetadata(fileid).catch(() => {
throw new Error(`Error while getting file metadata ${fileid}`)
})
const actual = await sut.updateFileMetadata(testFileId, testFileMetadata)

await new Promise((resolve) => setTimeout(resolve, 1000))
expect(actual).toBeUndefined()
expect(getFileMetadataResult.data.description).toBe(testFileMetadata.description)
expect(getFileMetadataResult.data.categories).toEqual(testFileMetadata.categories)
expect(getFileMetadataResult.data.restricted).toBe(testFileMetadata.restrict)
})

test('should return error when file does not exist', async () => {
Expand Down
8 changes: 8 additions & 0 deletions test/testHelpers/files/filesHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -235,3 +235,11 @@ export const getFileMetadata = async (fileId: number): Promise<AxiosResponse> =>
}
})
}

export const createFileMetadataWithCategories = (): FileMetadata => {
return {
categories: ['category1', 'category2'],
description: 'description',
directoryLabel: 'directoryLabel'
}
}

0 comments on commit 8c19b88

Please sign in to comment.