Skip to content

Commit d4efec4

Browse files
committed
feat(getCollection use case): add global constant ROOT_COLLECTION_ALIAS
1 parent 0d63f4b commit d4efec4

File tree

8 files changed

+23
-10
lines changed

8 files changed

+23
-10
lines changed

src/collections/domain/models/Collection.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ export interface Collection {
77
description?: string
88
isPartOf: DvObjectOwnerNode
99
}
10+
11+
export const ROOT_COLLECTION_ALIAS = 'root'

src/collections/domain/useCases/GetCollection.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { UseCase } from '../../../core/domain/useCases/UseCase'
22
import { ICollectionsRepository } from '../repositories/ICollectionsRepository'
3-
import { Collection } from '../models/Collection'
3+
import { Collection, ROOT_COLLECTION_ALIAS } from '../models/Collection'
44

55
export class GetCollection implements UseCase<Collection> {
66
private collectionsRepository: ICollectionsRepository
@@ -16,7 +16,7 @@ export class GetCollection implements UseCase<Collection> {
1616
* If this parameter is not set, the default value is: 'root'
1717
* @returns {Promise<Collection>}
1818
*/
19-
async execute(collectionIdOrAlias: number | string = 'root'): Promise<Collection> {
19+
async execute(collectionIdOrAlias: number | string = ROOT_COLLECTION_ALIAS): Promise<Collection> {
2020
return await this.collectionsRepository.getCollection(collectionIdOrAlias)
2121
}
2222
}

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import { ApiRepository } from '../../../core/infra/repositories/ApiRepository'
22
import { ICollectionsRepository } from '../../domain/repositories/ICollectionsRepository'
33
import { transformCollectionResponseToCollection } from './transformers/collectionTransformers'
4-
import { Collection } from '../../domain/models/Collection'
4+
import { Collection, ROOT_COLLECTION_ALIAS } from '../../domain/models/Collection'
55
export class CollectionsRepository extends ApiRepository implements ICollectionsRepository {
66
private readonly collectionsResourceName: string = 'dataverses'
77
private readonly collectionsDefaultOperationType: string = 'get'
88

9-
public async getCollection(collectionIdOrAlias: number | string = 'root'): Promise<Collection> {
9+
public async getCollection(
10+
collectionIdOrAlias: number | string = ROOT_COLLECTION_ALIAS
11+
): Promise<Collection> {
1012
return this.doGet(
1113
this.buildApiEndpoint(
1214
this.collectionsResourceName,

src/datasets/domain/useCases/CreateDataset.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { NewResourceValidator } from '../../../core/domain/useCases/validators/N
55
import { IMetadataBlocksRepository } from '../../../metadataBlocks/domain/repositories/IMetadataBlocksRepository'
66
import { MetadataBlock } from '../../../metadataBlocks'
77
import { CreatedDatasetIdentifiers } from '../models/CreatedDatasetIdentifiers'
8+
import { ROOT_COLLECTION_ALIAS } from '../../../collections/domain/models/Collection'
89

910
export class CreateDataset implements UseCase<CreatedDatasetIdentifiers> {
1011
private datasetsRepository: IDatasetsRepository
@@ -33,7 +34,7 @@ export class CreateDataset implements UseCase<CreatedDatasetIdentifiers> {
3334
*/
3435
async execute(
3536
newDataset: NewDatasetDTO,
36-
collectionId = 'root'
37+
collectionId = ROOT_COLLECTION_ALIAS
3738
): Promise<CreatedDatasetIdentifiers> {
3839
const metadataBlocks = await this.getNewDatasetMetadataBlocks(newDataset)
3940

test/environment/setup.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import datasetJson1 from '../testHelpers/datasets/test-dataset-1.json'
66
import datasetJson2 from '../testHelpers/datasets/test-dataset-2.json'
77
import datasetJson3 from '../testHelpers/datasets/test-dataset-3.json'
88
import collectionJson from '../testHelpers/collections/test-collection-1.json'
9+
import { ROOT_COLLECTION_ALIAS } from '../../src/collections/domain/models/Collection'
910

1011
const COMPOSE_FILE = 'docker-compose.yml'
1112

@@ -86,7 +87,10 @@ async function createCollectionViaApi(collectionJson: any): Promise<any> {
8687
}
8788

8889
/* eslint-disable @typescript-eslint/no-explicit-any */
89-
async function createDatasetViaApi(datasetJson: any, collectionId = 'root'): Promise<any> {
90+
async function createDatasetViaApi(
91+
datasetJson: any,
92+
collectionId = ROOT_COLLECTION_ALIAS
93+
): Promise<any> {
9094
return await axios.post(
9195
`${TestConstants.TEST_API_URL}/dataverses/${collectionId}/datasets`,
9296
datasetJson,

test/integration/datasets/DatasetsRepository.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
DatasetContact,
2121
DatasetDescription
2222
} from '../../../src/datasets/domain/models/Dataset'
23+
import { ROOT_COLLECTION_ALIAS } from '../../../src/collections/domain/models/Collection'
2324

2425
describe('DatasetsRepository', () => {
2526
const sut: DatasetsRepository = new DatasetsRepository()
@@ -336,7 +337,7 @@ describe('DatasetsRepository', () => {
336337
const createdDataset = await sut.createDataset(
337338
testNewDataset,
338339
[citationMetadataBlock],
339-
'root'
340+
ROOT_COLLECTION_ALIAS
340341
)
341342
const actualCreatedDataset = await sut.getDataset(
342343
createdDataset.numericId,

test/testHelpers/TestConstants.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { ROOT_COLLECTION_ALIAS } from '../../src/collections/domain/models/Collection'
2+
13
export class TestConstants {
24
static readonly TEST_API_URL = 'http://localhost:8080/api/v1'
35
static readonly TEST_DUMMY_API_KEY = 'dummyApiKey'
@@ -50,5 +52,5 @@ export class TestConstants {
5052
static readonly TEST_DUMMY_COLLECTION_ALIAS = 'dummyCollectionId'
5153
static readonly TEST_CREATED_COLLECTION_1_ID = 4
5254
static readonly TEST_CREATED_COLLECTION_1_ALIAS = 'firstCollection'
53-
static readonly TEST_CREATED_COLLECTION_1_ROOT = 'root'
55+
static readonly TEST_CREATED_COLLECTION_1_ROOT = ROOT_COLLECTION_ALIAS
5456
}

test/unit/datasets/CreateDataset.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
import { ResourceValidationError } from '../../../src/core/domain/useCases/validators/errors/ResourceValidationError'
1010
import { WriteError, ReadError } from '../../../src'
1111
import { IMetadataBlocksRepository } from '../../../src/metadataBlocks/domain/repositories/IMetadataBlocksRepository'
12+
import { ROOT_COLLECTION_ALIAS } from '../../../src/collections/domain/models/Collection'
1213

1314
describe('execute', () => {
1415
const testDataset = createNewDatasetDTO()
@@ -50,7 +51,7 @@ describe('execute', () => {
5051
expect(datasetsRepositoryStub.createDataset).toHaveBeenCalledWith(
5152
testDataset,
5253
testMetadataBlocks,
53-
'root'
54+
ROOT_COLLECTION_ALIAS
5455
)
5556
})
5657

@@ -110,7 +111,7 @@ describe('execute', () => {
110111
expect(datasetsRepositoryStub.createDataset).toHaveBeenCalledWith(
111112
testDataset,
112113
testMetadataBlocks,
113-
'root'
114+
ROOT_COLLECTION_ALIAS
114115
)
115116
})
116117

0 commit comments

Comments
 (0)