Skip to content

Commit 3400f27

Browse files
committed
feat: use case and docs
1 parent 4266785 commit 3400f27

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

docs/useCases.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ The different use cases currently available in the package are classified below,
2020
- [Update a Collection](#update-a-collection)
2121
- [Publish a Collection](#publish-a-collection)
2222
- [Update Collection Featured Items](#update-collection-featured-items)
23+
- [Delete Collection Featured Items](#delete-collection-featured-items)
2324
- [Datasets](#Datasets)
2425
- [Datasets read use cases](#datasets-read-use-cases)
2526
- [Get a Dataset](#get-a-dataset)
@@ -340,6 +341,28 @@ The `collectionIdOrAlias` is a generic collection identifier, which can be eithe
340341

341342
_See [use case](../src/collections/domain/useCases/UpdateCollectionFeaturedItems.ts)_ definition.
342343

344+
#### Delete Collection Featured Items
345+
346+
Deletes all featured items from a collection, given a collection identifier.
347+
348+
##### Example call:
349+
350+
```typescript
351+
import { deleteCollectionFeaturedItems } from '@iqss/dataverse-client-javascript'
352+
353+
/* ... */
354+
355+
const collectionIdOrAlias = 12345
356+
357+
deleteCollectionFeaturedItems.execute(collectionIdOrAlias)
358+
359+
/* ... */
360+
```
361+
362+
The `collectionIdOrAlias` is a generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId).
363+
364+
_See [use case](../src/collections/domain/useCases/DeleteCollectionFeaturedItems.ts)_ definition.
365+
343366
## Datasets
344367

345368
### Datasets Read Use Cases
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { UseCase } from '../../../core/domain/useCases/UseCase'
2+
import { ROOT_COLLECTION_ID } from '../models/Collection'
3+
import { ICollectionsRepository } from '../repositories/ICollectionsRepository'
4+
5+
export class DeleteCollectionFeaturedItems implements UseCase<void> {
6+
private collectionsRepository: ICollectionsRepository
7+
8+
constructor(collectionsRepository: ICollectionsRepository) {
9+
this.collectionsRepository = collectionsRepository
10+
}
11+
12+
/**
13+
* Deletes all featured items from a collection, given a collection identifier.
14+
*
15+
* @param {number | string} [collectionIdOrAlias = ':root'] - A generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId)
16+
* If this parameter is not set, the default value is: ':root'
17+
* @returns {Promise<void>} - This method does not return anything upon successful completion.
18+
* @throws {WriteError} - If there are errors while writing data.
19+
*/
20+
async execute(collectionIdOrAlias: number | string = ROOT_COLLECTION_ID): Promise<void> {
21+
return await this.collectionsRepository.deleteCollectionFeaturedItems(collectionIdOrAlias)
22+
}
23+
}

src/collections/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { UpdateCollection } from './domain/useCases/UpdateCollection'
88
import { GetCollectionFeaturedItems } from './domain/useCases/GetCollectionFeaturedItems'
99
import { CollectionsRepository } from './infra/repositories/CollectionsRepository'
1010
import { UpdateCollectionFeaturedItems } from './domain/useCases/UpdateCollectionFeaturedItems'
11+
import { DeleteCollectionFeaturedItems } from './domain/useCases/DeleteCollectionFeaturedItems'
1112

1213
const collectionsRepository = new CollectionsRepository()
1314

@@ -20,6 +21,7 @@ const publishCollection = new PublishCollection(collectionsRepository)
2021
const updateCollection = new UpdateCollection(collectionsRepository)
2122
const getCollectionFeaturedItems = new GetCollectionFeaturedItems(collectionsRepository)
2223
const updateCollectionFeaturedItems = new UpdateCollectionFeaturedItems(collectionsRepository)
24+
const deleteCollectionFeaturedItems = new DeleteCollectionFeaturedItems(collectionsRepository)
2325

2426
export {
2527
getCollection,
@@ -30,7 +32,8 @@ export {
3032
publishCollection,
3133
updateCollection,
3234
getCollectionFeaturedItems,
33-
updateCollectionFeaturedItems
35+
updateCollectionFeaturedItems,
36+
deleteCollectionFeaturedItems
3437
}
3538
export { Collection, CollectionInputLevel } from './domain/models/Collection'
3639
export { CollectionFacet } from './domain/models/CollectionFacet'

0 commit comments

Comments
 (0)