From 694c9356e066af30863b2c0b929e408e92df514d Mon Sep 17 00:00:00 2001 From: Vera Clemens Date: Fri, 6 Mar 2026 13:32:50 +0100 Subject: [PATCH 1/3] feat: add ignoreSettingExcludeEmailFromExport param to GetCollection use case --- .../domain/repositories/ICollectionsRepository.ts | 5 ++++- src/collections/domain/useCases/GetCollection.ts | 8 ++++++-- .../infra/repositories/CollectionsRepository.ts | 6 ++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/collections/domain/repositories/ICollectionsRepository.ts b/src/collections/domain/repositories/ICollectionsRepository.ts index ed6cf4ff..03a5fff9 100644 --- a/src/collections/domain/repositories/ICollectionsRepository.ts +++ b/src/collections/domain/repositories/ICollectionsRepository.ts @@ -16,7 +16,10 @@ import { StorageDriver } from '../../../core/domain/models/StorageDriver' import { LinkingObjectType } from '../useCases/GetCollectionsForLinking' export interface ICollectionsRepository { - getCollection(collectionIdOrAlias: number | string): Promise + getCollection( + collectionIdOrAlias: number | string, + ignoreSettingExcludeEmailFromExport?: boolean + ): Promise getCollectionStorageDriver( collectionIdOrAlias: number | string, getEffective?: boolean diff --git a/src/collections/domain/useCases/GetCollection.ts b/src/collections/domain/useCases/GetCollection.ts index 38f1d6d6..55cce8b3 100644 --- a/src/collections/domain/useCases/GetCollection.ts +++ b/src/collections/domain/useCases/GetCollection.ts @@ -14,9 +14,13 @@ export class GetCollection implements UseCase { * * @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) * If this parameter is not set, the default value is: ':root' + * @param {boolean} ignoreSettingExcludeEmailFromExport - This prevents the contact emails from being excluded when the setting `ExcludeEmailFromExport` is set to true and the user has EditDataverse permissions. * @returns {Promise} */ - async execute(collectionIdOrAlias: number | string = ROOT_COLLECTION_ID): Promise { - return await this.collectionsRepository.getCollection(collectionIdOrAlias) + async execute(collectionIdOrAlias: number | string = ROOT_COLLECTION_ID, ignoreSettingExcludeEmailFromExport?: boolean): Promise { + return await this.collectionsRepository.getCollection( + collectionIdOrAlias, + ignoreSettingExcludeEmailFromExport + ) } } diff --git a/src/collections/infra/repositories/CollectionsRepository.ts b/src/collections/infra/repositories/CollectionsRepository.ts index ccf22729..83fe9fe0 100644 --- a/src/collections/infra/repositories/CollectionsRepository.ts +++ b/src/collections/infra/repositories/CollectionsRepository.ts @@ -98,11 +98,13 @@ export enum GetMyDataCollectionItemsQueryParams { export class CollectionsRepository extends ApiRepository implements ICollectionsRepository { private readonly collectionsResourceName: string = 'dataverses' public async getCollection( - collectionIdOrAlias: number | string = ROOT_COLLECTION_ID + collectionIdOrAlias: number | string = ROOT_COLLECTION_ID, + ignoreSettingExcludeEmailFromExport?: boolean ): Promise { return this.doGet(`/${this.collectionsResourceName}/${collectionIdOrAlias}`, true, { returnOwners: true, - returnChildCount: true + returnChildCount: true, + ignoreSettingExcludeEmailFromExport: ignoreSettingExcludeEmailFromExport }) .then((response) => transformCollectionResponseToCollection(response)) .catch((error) => { From b9232a65115a75a4f3318628188a9a9e0b16b3d8 Mon Sep 17 00:00:00 2001 From: Vera Clemens Date: Tue, 18 Aug 2026 15:56:09 +0200 Subject: [PATCH 2/3] docs: update CHANGELOG with ignoreSettingExcludeEmailFromExport support in getCollection --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad4a912c..2ad33f64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel - Datasets: Added `exportDatasetMetadata` use case, repository method, and `ExportedDatasetMetadata` response type to support exporting dataset metadata by numeric id or persistent id through Dataverse endpoint `GET /datasets/export`. - Collections: Added `allowedDatasetTypes` field to the [Collection](./src/collections/domain/models/Collection.ts) model. This field is optional and only populated the feature is enabled on the installation and configured on the collection. - Collections: Added theme information when retrieving a collection using `getCollection`. +- Collections: Added optional `ignoreSettingExcludeEmailFromExport` support to `getCollection`. ### Changed From 386ff4fa30deba2978fcd3ee51211d34809161a7 Mon Sep 17 00:00:00 2001 From: Vera Clemens Date: Tue, 18 Aug 2026 16:09:43 +0200 Subject: [PATCH 3/3] style: reformat GetCollection use case --- src/collections/domain/useCases/GetCollection.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/collections/domain/useCases/GetCollection.ts b/src/collections/domain/useCases/GetCollection.ts index 55cce8b3..13338400 100644 --- a/src/collections/domain/useCases/GetCollection.ts +++ b/src/collections/domain/useCases/GetCollection.ts @@ -17,7 +17,10 @@ export class GetCollection implements UseCase { * @param {boolean} ignoreSettingExcludeEmailFromExport - This prevents the contact emails from being excluded when the setting `ExcludeEmailFromExport` is set to true and the user has EditDataverse permissions. * @returns {Promise} */ - async execute(collectionIdOrAlias: number | string = ROOT_COLLECTION_ID, ignoreSettingExcludeEmailFromExport?: boolean): Promise { + async execute( + collectionIdOrAlias: number | string = ROOT_COLLECTION_ID, + ignoreSettingExcludeEmailFromExport?: boolean + ): Promise { return await this.collectionsRepository.getCollection( collectionIdOrAlias, ignoreSettingExcludeEmailFromExport