Skip to content

Commit df0ffa8

Browse files
committed
fix: numbers for dataset id and string for collection alias
1 parent 17f5a24 commit df0ffa8

File tree

5 files changed

+31
-26
lines changed

5 files changed

+31
-26
lines changed

docs/useCases.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -958,9 +958,9 @@ import { linkDataset } from '@iqss/dataverse-client-javascript'
958958
/* ... */
959959

960960
const datasetId = 1
961-
const collectionIdOrAlias = 12345
961+
const collectionAlias = 'collection-alias'
962962

963-
linkDataset.execute(datasetId, collectionIdOrAlias)
963+
linkDataset.execute(datasetId, collectionAlias)
964964

965965
/* ... */
966966
```
@@ -979,9 +979,9 @@ import { unlinkDataset } from '@iqss/dataverse-client-javascript'
979979
/* ... */
980980

981981
const datasetId = 1
982-
const collectionIdOrAlias = 12345
982+
const collectionAlias = 'collection-alias'
983983

984-
unlinkDataset.execute(datasetId, collectionIdOrAlias)
984+
unlinkDataset.execute(datasetId, collectionAlias)
985985

986986
/* ... */
987987
```

src/datasets/domain/repositories/IDatasetsRepository.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { MetadataBlock } from '../../../metadataBlocks'
99
import { DatasetVersionDiff } from '../models/DatasetVersionDiff'
1010
import { DatasetDownloadCount } from '../models/DatasetDownloadCount'
1111
import { DatasetVersionSummaryInfo } from '../models/DatasetVersionSummaryInfo'
12+
import { DatasetLinkedCollection } from '../models/DatasetLinkedCollection'
1213

1314
export interface IDatasetsRepository {
1415
getDataset(
@@ -61,6 +62,7 @@ export interface IDatasetsRepository {
6162
): Promise<DatasetDownloadCount>
6263
getDatasetVersionsSummaries(datasetId: number | string): Promise<DatasetVersionSummaryInfo[]>
6364
deleteDatasetDraft(datasetId: number | string): Promise<void>
64-
linkDataset(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void>
65-
unlinkDataset(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void>
65+
linkDataset(datasetId: number, collectionAlias: string): Promise<void>
66+
unlinkDataset(datasetId: number, collectionAlias: string): Promise<void>
67+
getDatasetLinkedCollections(datasetId: number | string): Promise<DatasetLinkedCollection[]>
6668
}

src/datasets/domain/useCases/LinkDataset.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ export class LinkDataset implements UseCase<void> {
1111
/**
1212
* Creates a link between a Dataset and a Collection.
1313
*
14-
* @param {number | string} [datasetId] - The dataset identifier, which can be a string (for persistent identifiers), or a number (for numeric identifiers).
15-
* @param {number | string} [collectionIdOrAlias] - A generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId)
14+
* @param {number} [datasetId] - The dataset id.
15+
* @param {string} [collectionAlias] - The collection alias.
1616
* @returns {Promise<void>} - This method does not return anything upon successful completion.
1717
*/
18-
async execute(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void> {
19-
return await this.datasetsRepository.linkDataset(datasetId, collectionIdOrAlias)
18+
async execute(datasetId: number, collectionAlias: string): Promise<void> {
19+
return await this.datasetsRepository.linkDataset(datasetId, collectionAlias)
2020
}
2121
}

src/datasets/domain/useCases/UnlinkDataset.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ export class UnlinkDataset implements UseCase<void> {
1111
/**
1212
* Removes a link between a Dataset and a Collection.
1313
*
14-
* @param {number | string} [datasetId] - The dataset identifier, which can be a string (for persistent identifiers), or a number (for numeric identifiers).
15-
* @param {number | string} [collectionIdOrAlias] - A generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId)
14+
* @param {number} [datasetId] - The dataset id.
15+
* @param {string} [collectionAlias] - The collection alias.
1616
* @returns {Promise<void>} - This method does not return anything upon successful completion.
1717
*/
18-
async execute(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void> {
19-
return await this.datasetsRepository.unlinkDataset(datasetId, collectionIdOrAlias)
18+
async execute(datasetId: number, collectionAlias: string): Promise<void> {
19+
return await this.datasetsRepository.unlinkDataset(datasetId, collectionAlias)
2020
}
2121
}

src/datasets/infra/repositories/DatasetsRepository.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { DatasetVersionDiff } from '../../domain/models/DatasetVersionDiff'
2020
import { transformDatasetVersionDiffResponseToDatasetVersionDiff } from './transformers/datasetVersionDiffTransformers'
2121
import { DatasetDownloadCount } from '../../domain/models/DatasetDownloadCount'
2222
import { DatasetVersionSummaryInfo } from '../../domain/models/DatasetVersionSummaryInfo'
23+
import { DatasetLinkedCollection } from '../../domain/models/DatasetLinkedCollection'
2324

2425
export interface GetAllDatasetPreviewsQueryParams {
2526
per_page?: number
@@ -288,27 +289,29 @@ export class DatasetsRepository extends ApiRepository implements IDatasetsReposi
288289
})
289290
}
290291

291-
public async linkDataset(
292-
datasetId: number | string,
293-
collectionIdOrAlias: number | string
294-
): Promise<void> {
295-
return this.doPut(`/${this.datasetsResourceName}/${datasetId}/link/${collectionIdOrAlias}`, {})
292+
public async linkDataset(datasetId: number, collectionAlias: string): Promise<void> {
293+
return this.doPut(`/${this.datasetsResourceName}/${datasetId}/link/${collectionAlias}`, {})
296294
.then(() => undefined)
297295
.catch((error) => {
298296
throw error
299297
})
300298
}
301299

302-
public async unlinkDataset(
303-
datasetId: number | string,
304-
collectionIdOrAlias: number | string
305-
): Promise<void> {
306-
return this.doDelete(
307-
`/${this.datasetsResourceName}/${datasetId}/deleteLink/${collectionIdOrAlias}`
308-
)
300+
public async unlinkDataset(datasetId: number, collectionAlias: string): Promise<void> {
301+
return this.doDelete(`/${this.datasetsResourceName}/${datasetId}/deleteLink/${collectionAlias}`)
309302
.then(() => undefined)
310303
.catch((error) => {
311304
throw error
312305
})
313306
}
307+
308+
public async getDatasetLinkedCollections(
309+
datasetId: number | string
310+
): Promise<DatasetLinkedCollection[]> {
311+
return this.doGet(this.buildApiEndpoint(this.datasetsResourceName, 'links', datasetId), true)
312+
.then((response) => response.data.data)
313+
.catch((error) => {
314+
throw error
315+
})
316+
}
314317
}

0 commit comments

Comments
 (0)