Skip to content

Commit 243eda1

Browse files
committed
feat: restructure template
1 parent 801aa2c commit 243eda1

24 files changed

Lines changed: 275 additions & 231 deletions

File tree

docs/useCases.md

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ The different use cases currently available in the package are classified below,
2525
- [Update Collection Featured Items](#update-collection-featured-items)
2626
- [Delete Collection Featured Items](#delete-collection-featured-items)
2727
- [Delete a Collection Featured Item](#delete-a-collection-featured-item)
28+
- [Templates](#Templates)
29+
- [Templates read use cases](#templates-read-use-cases)
30+
- [Get Dataset Templates](#get-dataset-templates)
31+
- [Templates write use cases](#templates-write-use-cases)
2832
- [Create a Dataset Template](#create-a-dataset-template)
2933
- [Datasets](#Datasets)
3034
- [Datasets read use cases](#datasets-read-use-cases)
@@ -40,7 +44,6 @@ The different use cases currently available in the package are classified below,
4044
- [Get Dataset Versions Summaries](#get-dataset-versions-summaries)
4145
- [Get Dataset Linked Collections](#get-dataset-linked-collections)
4246
- [Get Dataset Available Categories](#get-dataset-available-categories)
43-
- [Get Dataset Templates](#get-dataset-templates)
4447
- [Get Dataset Available Dataset Types](#get-dataset-available-dataset-types)
4548
- [Get Dataset Available Dataset Type](#get-dataset-available-dataset-type)
4649
- [Datasets write use cases](#datasets-write-use-cases)
@@ -569,6 +572,30 @@ deleteCollectionFeaturedItem.execute(featuredItemId)
569572

570573
_See [use case](../src/collections/domain/useCases/DeleteCollectionFeaturedItem.ts)_ definition.
571574

575+
## Templates
576+
577+
### Templates Read Use Cases
578+
579+
#### Get Dataset Templates
580+
581+
Returns a [DatasetTemplate](../src/template/domain/models/DatasetTemplate.ts) array containing the dataset templates of the requested collection, given the collection identifier or alias.
582+
583+
##### Example call:
584+
585+
```typescript
586+
import { getDatasetTemplates } from '@iqss/dataverse-client-javascript'
587+
588+
const collectionIdOrAlias = 12345
589+
590+
getDatasetTemplates.execute(collectionIdOrAlias).then((datasetTemplates: DatasetTemplate[]) => {
591+
/* ... */
592+
})
593+
```
594+
595+
_See [use case](../src/template/domain/useCases/GetDatasetTemplates.ts)_ definition.
596+
597+
### Templates Write Use Cases
598+
572599
#### Create a Dataset Template
573600

574601
Creates a dataset template for a given Dataverse collection id or alias.
@@ -577,10 +604,10 @@ Creates a dataset template for a given Dataverse collection id or alias.
577604

578605
```typescript
579606
import { createDatasetTemplate } from '@iqss/dataverse-client-javascript'
580-
import { TemplateCreateDTO } from '@iqss/dataverse-client-javascript'
607+
import { CreateDatasetTemplateDTO } from '@iqss/dataverse-client-javascript'
581608

582609
const collectionAlias = ':root'
583-
const template: TemplateCreateDTO = {
610+
const template: CreateDatasetTemplateDTO = {
584611
name: 'Dataverse template',
585612
isDefault: true,
586613
fields: [
@@ -602,7 +629,7 @@ const template: TemplateCreateDTO = {
602629
await createDatasetTemplate.execute(template, collectionAlias)
603630
```
604631

605-
_See [use case](../src/collections/domain/useCases/CreateDatasetTemplate.ts) implementation_.
632+
_See [use case](../src/template/domain/useCases/CreateDatasetTemplate.ts) implementation_.
606633

607634
## Datasets
608635

@@ -1333,24 +1360,6 @@ _See [use case](../src/datasets/domain/useCases/GetDatasetAvailableCategories.ts
13331360

13341361
The `datasetId` parameter is a number for numeric identifiers or string for persistent identifiers.
13351362

1336-
#### Get Dataset Templates
1337-
1338-
Returns a [DatasetTemplate](../src/datasets/domain/models/DatasetTemplate.ts) array containing the dataset templates of the requested collection, given the collection identifier or alias.
1339-
1340-
##### Example call:
1341-
1342-
```typescript
1343-
import { getDatasetTemplates } from '@iqss/dataverse-client-javascript'
1344-
1345-
const collectionIdOrAlias = 12345
1346-
1347-
getDatasetTemplates.execute(collectionIdOrAlias).then((datasetTemplates: DatasetTemplate[]) => {
1348-
/* ... */
1349-
})
1350-
```
1351-
1352-
_See [use case](../src/datasets/domain/useCases/GetDatasetTemplates.ts)_ definition.
1353-
13541363
#### Add a Dataset Type
13551364

13561365
Adds a dataset types that can be used at dataset creation.

src/collections/domain/repositories/ICollectionsRepository.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { CollectionItemType } from '../../../collections/domain/models/Collectio
1212
import { CollectionLinks } from '../models/CollectionLinks'
1313
import { CollectionSummary } from '../models/CollectionSummary'
1414
import { LinkingObjectType } from '../useCases/GetCollectionsForLinking'
15-
import { CreateDatasetTemplateDTO } from '../dtos/CreateDatasetTemplateDTO'
1615

1716
export interface ICollectionsRepository {
1817
getCollection(collectionIdOrAlias: number | string): Promise<Collection>
@@ -69,8 +68,4 @@ export interface ICollectionsRepository {
6968
searchTerm: string,
7069
alreadyLinked: boolean
7170
): Promise<CollectionSummary[]>
72-
createDatasetTemplate(
73-
collectionIdOrAlias: number | string,
74-
template: CreateDatasetTemplateDTO
75-
): Promise<void>
7671
}

src/collections/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import { LinkCollection } from './domain/useCases/LinkCollection'
1616
import { UnlinkCollection } from './domain/useCases/UnlinkCollection'
1717
import { GetCollectionLinks } from './domain/useCases/GetCollectionLinks'
1818
import { GetCollectionsForLinking } from './domain/useCases/GetCollectionsForLinking'
19-
import { CreateDatasetTemplate } from './domain/useCases/CreateDatasetTemplate'
2019

2120
const collectionsRepository = new CollectionsRepository()
2221

@@ -37,7 +36,6 @@ const linkCollection = new LinkCollection(collectionsRepository)
3736
const unlinkCollection = new UnlinkCollection(collectionsRepository)
3837
const getCollectionLinks = new GetCollectionLinks(collectionsRepository)
3938
const getCollectionsForLinking = new GetCollectionsForLinking(collectionsRepository)
40-
const createDatasetTemplate = new CreateDatasetTemplate(collectionsRepository)
4139

4240
export {
4341
getCollection,
@@ -56,8 +54,7 @@ export {
5654
linkCollection,
5755
unlinkCollection,
5856
getCollectionLinks,
59-
getCollectionsForLinking,
60-
createDatasetTemplate
57+
getCollectionsForLinking
6158
}
6259
export { Collection, CollectionInputLevel } from './domain/models/Collection'
6360
export { CollectionFacet } from './domain/models/CollectionFacet'

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import { ReadError } from '../../../core/domain/repositories/ReadError'
4040
import { CollectionLinks } from '../../domain/models/CollectionLinks'
4141
import { CollectionSummary } from '../../domain/models/CollectionSummary'
4242
import { LinkingObjectType } from '../../domain/useCases/GetCollectionsForLinking'
43-
import { CreateDatasetTemplateDTO } from '../../domain/dtos/CreateDatasetTemplateDTO'
4443

4544
export interface NewCollectionRequestPayload {
4645
alias: string
@@ -529,18 +528,4 @@ export class CollectionsRepository extends ApiRepository implements ICollections
529528
throw error
530529
})
531530
}
532-
533-
public async createDatasetTemplate(
534-
collectionIdOrAlias: number | string,
535-
template: CreateDatasetTemplateDTO
536-
): Promise<void> {
537-
return this.doPost(
538-
`/${this.collectionsResourceName}/${collectionIdOrAlias}/templates`,
539-
template
540-
)
541-
.then(() => undefined)
542-
.catch((error) => {
543-
throw error
544-
})
545-
}
546531
}

src/datasets/domain/repositories/IDatasetsRepository.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { DatasetVersionSummarySubset } from '../models/DatasetVersionSummaryInfo
1212
import { DatasetLinkedCollection } from '../models/DatasetLinkedCollection'
1313
import { CitationFormat } from '../models/CitationFormat'
1414
import { FormattedCitation } from '../models/FormattedCitation'
15-
import { DatasetTemplate } from '../models/DatasetTemplate'
1615
import { DatasetType } from '../models/DatasetType'
1716
import { TermsOfAccess } from '../models/Dataset'
1817
import { DatasetLicenseUpdateRequest } from '../dtos/DatasetLicenseUpdateRequest'
@@ -84,7 +83,6 @@ export interface IDatasetsRepository {
8483
format: CitationFormat,
8584
includeDeaccessioned?: boolean
8685
): Promise<FormattedCitation>
87-
getDatasetTemplates(collectionIdOrAlias: number | string): Promise<DatasetTemplate[]>
8886
getDatasetAvailableDatasetTypes(): Promise<DatasetType[]>
8987
getDatasetAvailableDatasetType(datasetTypeId: number | string): Promise<DatasetType>
9088
addDatasetType(datasetType: DatasetTypeDTO): Promise<DatasetType>

src/datasets/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import { LinkDatasetTypeWithMetadataBlocks } from './domain/useCases/LinkDataset
3131
import { SetAvailableLicensesForDatasetType } from './domain/useCases/SetAvailableLicensesForDatasetType'
3232
import { DeleteDatasetType } from './domain/useCases/DeleteDatasetType'
3333
import { GetDatasetCitationInOtherFormats } from './domain/useCases/GetDatasetCitationInOtherFormats'
34-
import { GetDatasetTemplates } from './domain/useCases/GetDatasetTemplates'
3534
import { UpdateTermsOfAccess } from './domain/useCases/UpdateTermsOfAccess'
3635
import { UpdateDatasetLicense } from './domain/useCases/UpdateDatasetLicense'
3736

@@ -81,7 +80,6 @@ const setAvailableLicensesForDatasetType = new SetAvailableLicensesForDatasetTyp
8180
)
8281
const deleteDatasetType = new DeleteDatasetType(datasetsRepository)
8382
const getDatasetCitationInOtherFormats = new GetDatasetCitationInOtherFormats(datasetsRepository)
84-
const getDatasetTemplates = new GetDatasetTemplates(datasetsRepository)
8583
const updateTermsOfAccess = new UpdateTermsOfAccess(datasetsRepository)
8684
const updateDatasetLicense = new UpdateDatasetLicense(datasetsRepository)
8785

@@ -107,7 +105,6 @@ export {
107105
getDatasetLinkedCollections,
108106
getDatasetAvailableCategories,
109107
getDatasetCitationInOtherFormats,
110-
getDatasetTemplates,
111108
updateTermsOfAccess,
112109
getDatasetAvailableDatasetTypes,
113110
getDatasetAvailableDatasetType,

src/datasets/infra/repositories/DatasetsRepository.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { AxiosResponse } from 'axios'
21
import { ApiRepository } from '../../../core/infra/repositories/ApiRepository'
32
import { IDatasetsRepository } from '../../domain/repositories/IDatasetsRepository'
43
import { Dataset, VersionUpdateType } from '../../domain/models/Dataset'
@@ -25,9 +24,6 @@ import { DatasetLinkedCollection } from '../../domain/models/DatasetLinkedCollec
2524
import { CitationFormat } from '../../domain/models/CitationFormat'
2625
import { transformDatasetLinkedCollectionsResponseToDatasetLinkedCollection } from './transformers/datasetLinkedCollectionsTransformers'
2726
import { FormattedCitation } from '../../domain/models/FormattedCitation'
28-
import { DatasetTemplate } from '../../domain/models/DatasetTemplate'
29-
import { DatasetTemplatePayload } from './transformers/DatasetTemplatePayload'
30-
import { transformDatasetTemplatePayloadToDatasetTemplate } from './transformers/datasetTemplateTransformers'
3127
import { DatasetType } from '../../domain/models/DatasetType'
3228
import { TermsOfAccess } from '../../domain/models/Dataset'
3329
import { transformTermsOfAccessToUpdatePayload } from './transformers/termsOfAccessTransformers'
@@ -402,18 +398,6 @@ export class DatasetsRepository extends ApiRepository implements IDatasetsReposi
402398
})
403399
}
404400

405-
public async getDatasetTemplates(
406-
collectionIdOrAlias: number | string
407-
): Promise<DatasetTemplate[]> {
408-
return this.doGet(`/dataverses/${collectionIdOrAlias}/templates`, true)
409-
.then((response: AxiosResponse<{ data: DatasetTemplatePayload[] }>) =>
410-
transformDatasetTemplatePayloadToDatasetTemplate(response.data.data)
411-
)
412-
.catch((error) => {
413-
throw error
414-
})
415-
}
416-
417401
public async getDatasetAvailableDatasetTypes(): Promise<DatasetType[]> {
418402
return this.doGet(this.buildApiEndpoint(this.datasetsResourceName, 'datasetTypes'))
419403
.then((response) => response.data.data)

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ export * from './notifications'
1212
export * from './search'
1313
export * from './licenses'
1414
export * from './externalTools'
15+
export * from './template'

src/collections/domain/dtos/CreateDatasetTemplateDTO.ts renamed to src/template/domain/dtos/CreateDatasetTemplateDTO.ts

File renamed without changes.

src/datasets/domain/models/DatasetTemplate.ts renamed to src/template/domain/models/DatasetTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DatasetMetadataBlock, TermsOfUse } from './Dataset'
1+
import { DatasetMetadataBlock, TermsOfUse } from '../../../datasets/domain/models/Dataset'
22
import { License } from '../../../licenses/domain/models/License'
33

44
export interface DatasetTemplate {

0 commit comments

Comments
 (0)