1- import { UseCase } from '../../../core/domain/useCases/UseCase'
21import { IDatasetsRepository } from '../repositories/IDatasetsRepository'
3- import { NewDatasetDTO , NewDatasetMetadataBlockValuesDTO } from '../dtos/NewDatasetDTO'
2+ import { NewDatasetDTO } from '../dtos/NewDatasetDTO'
43import { NewResourceValidator } from '../../../core/domain/useCases/validators/NewResourceValidator'
54import { IMetadataBlocksRepository } from '../../../metadataBlocks/domain/repositories/IMetadataBlocksRepository'
6- import { MetadataBlock } from '../../../metadataBlocks'
75import { CreatedDatasetIdentifiers } from '../models/CreatedDatasetIdentifiers'
86import { ROOT_COLLECTION_ALIAS } from '../../../collections/domain/models/Collection'
7+ import { DatasetWriteUseCase } from './DatasetWriteUseCase'
98
10- export class CreateDataset implements UseCase < CreatedDatasetIdentifiers > {
11- private datasetsRepository : IDatasetsRepository
12- private metadataBlocksRepository : IMetadataBlocksRepository
13- private newDatasetValidator : NewResourceValidator
14-
9+ export class CreateDataset extends DatasetWriteUseCase < CreatedDatasetIdentifiers > {
1510 constructor (
1611 datasetsRepository : IDatasetsRepository ,
1712 metadataBlocksRepository : IMetadataBlocksRepository ,
1813 newDatasetValidator : NewResourceValidator
1914 ) {
20- this . datasetsRepository = datasetsRepository
21- this . metadataBlocksRepository = metadataBlocksRepository
22- this . newDatasetValidator = newDatasetValidator
15+ super ( datasetsRepository , metadataBlocksRepository , newDatasetValidator )
2316 }
2417
2518 /**
@@ -37,23 +30,7 @@ export class CreateDataset implements UseCase<CreatedDatasetIdentifiers> {
3730 collectionId = ROOT_COLLECTION_ALIAS
3831 ) : Promise < CreatedDatasetIdentifiers > {
3932 const metadataBlocks = await this . getNewDatasetMetadataBlocks ( newDataset )
40-
41- this . newDatasetValidator . validate ( newDataset , metadataBlocks )
42-
43- return this . datasetsRepository . createDataset ( newDataset , metadataBlocks , collectionId )
44- }
45-
46- async getNewDatasetMetadataBlocks ( newDataset : NewDatasetDTO ) : Promise < MetadataBlock [ ] > {
47- const metadataBlocks : MetadataBlock [ ] = [ ]
48- await Promise . all (
49- newDataset . metadataBlockValues . map (
50- async ( metadataBlockValue : NewDatasetMetadataBlockValuesDTO ) => {
51- metadataBlocks . push (
52- await this . metadataBlocksRepository . getMetadataBlockByName ( metadataBlockValue . name )
53- )
54- }
55- )
56- )
57- return metadataBlocks
33+ this . getNewDatasetValidator ( ) . validate ( newDataset , metadataBlocks )
34+ return this . getDatasetsRepository ( ) . createDataset ( newDataset , metadataBlocks , collectionId )
5835 }
5936}
0 commit comments