Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel

### Added

- Datasets: Added `updateDatasetLicense` use case and repository method to support Dataverse endpoint `PUT /datasets/{id}/license`, for updating dataset license or custom terms
- Datasets: Added `updateDatasetLicense` use case and repository method to support Dataverse endpoint `PUT /datasets/{id}/license`, for updating dataset license or custom terms.
- New Use Case: [Get Collections For Linking Use Case](./docs/useCases.md#get-collections-for-linking).
- New Use Case: [Create a Dataset Template](./docs/useCases.md#create-a-dataset-template) under Collections.

- New Use Case: [Create a Template](./docs/useCases.md#create-a-template) under Templates.
- New Use Case: [Get a Template](./docs/useCases.md#get-a-template) under Templates.
- New Use Case: [Delete a Template](./docs/useCases.md#delete-a-template) under Templates.
- New Use Case: [Update Terms of Access](./docs/useCases.md#update-terms-of-access).

### Changed

- Add pagination query parameters to Dataset Version Summeries and File Version Summaries use cases
- Add pagination query parameters to Dataset Version Summeries and File Version Summaries use cases.
- Templates: Rename `getDatasetTemplates` repository method to `getTemplatesByCollectionId`.

### Fixed

Expand Down
99 changes: 72 additions & 27 deletions docs/useCases.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,13 @@ The different use cases currently available in the package are classified below,
- [Update Collection Featured Items](#update-collection-featured-items)
- [Delete Collection Featured Items](#delete-collection-featured-items)
- [Delete a Collection Featured Item](#delete-a-collection-featured-item)
- [Create a Dataset Template](#create-a-dataset-template)
- [Templates](#Templates)
- [Templates read use cases](#templates-read-use-cases)
- [Get a Template](#get-a-template)
- [Get Dataset Templates](#get-dataset-templates)
- [Templates write use cases](#templates-write-use-cases)
- [Create a Template](#create-a-template)
- [Delete a Template](#delete-a-template)
- [Datasets](#Datasets)
- [Datasets read use cases](#datasets-read-use-cases)
- [Get a Dataset](#get-a-dataset)
Expand All @@ -40,7 +46,6 @@ The different use cases currently available in the package are classified below,
- [Get Dataset Versions Summaries](#get-dataset-versions-summaries)
- [Get Dataset Linked Collections](#get-dataset-linked-collections)
- [Get Dataset Available Categories](#get-dataset-available-categories)
- [Get Dataset Templates](#get-dataset-templates)
- [Get Dataset Available Dataset Types](#get-dataset-available-dataset-types)
- [Get Dataset Available Dataset Type](#get-dataset-available-dataset-type)
- [Datasets write use cases](#datasets-write-use-cases)
Expand Down Expand Up @@ -569,18 +574,60 @@ deleteCollectionFeaturedItem.execute(featuredItemId)

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

#### Create a Dataset Template
## Templates

### Templates Read Use Cases

#### Get a Template

Creates a dataset template for a given Dataverse collection id or alias.
Returns a [Template](../src/templates/domain/models/Template.ts) by its template id.

##### Example call:

```typescript
import { createDatasetTemplate } from '@iqss/dataverse-client-javascript'
import { TemplateCreateDTO } from '@iqss/dataverse-client-javascript'
import { getTemplate } from '@iqss/dataverse-client-javascript'

const templateId = 12345

getTemplate.execute(templateId).then((template: Template) => {
/* ... */
})
```

_See [use case](../src/templates/domain/useCases/GetTemplate.ts)_ definition.

#### Get Dataset Templates

Returns a [Template](../src/templates/domain/models/Template.ts) array containing the templates of the requested collection, given the collection identifier or alias.

##### Example call:

```typescript
import { getDatasetTemplates } from '@iqss/dataverse-client-javascript'

const collectionIdOrAlias = 12345

getDatasetTemplates.execute(collectionIdOrAlias).then((datasetTemplates: Template[]) => {
/* ... */
})
```

_See [use case](../src/templates/domain/useCases/GetDatasetTemplates.ts)_ definition.

### Templates Write Use Cases

#### Create a Template

Creates a template for a given Dataverse collection id or alias.

##### Example call:

```typescript
import { createTemplate } from '@iqss/dataverse-client-javascript'
import { CreateTemplateDTO } from '@iqss/dataverse-client-javascript'

const collectionAlias = ':root'
const template: TemplateCreateDTO = {
const template: CreateTemplateDTO = {
name: 'Dataverse template',
isDefault: true,
fields: [
Expand All @@ -599,10 +646,26 @@ const template: TemplateCreateDTO = {
instructions: [{ instructionField: 'author', instructionText: 'The author data' }]
}

await createDatasetTemplate.execute(template, collectionAlias)
await createTemplate.execute(template, collectionAlias)
```

_See [use case](../src/templates/domain/useCases/CreateTemplate.ts) implementation_.

#### Delete a Template

Deletes a template by its template id.

##### Example call:

```typescript
import { deleteTemplate } from '@iqss/dataverse-client-javascript'

const templateId = 12345

await deleteTemplate.execute(templateId)
```

_See [use case](../src/collections/domain/useCases/CreateDatasetTemplate.ts) implementation_.
_See [use case](../src/templates/domain/useCases/DeleteTemplate.ts)_ definition.

## Datasets

Expand Down Expand Up @@ -1333,24 +1396,6 @@ _See [use case](../src/datasets/domain/useCases/GetDatasetAvailableCategories.ts

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

#### Get Dataset Templates

Returns a [DatasetTemplate](../src/datasets/domain/models/DatasetTemplate.ts) array containing the dataset templates of the requested collection, given the collection identifier or alias.

##### Example call:

```typescript
import { getDatasetTemplates } from '@iqss/dataverse-client-javascript'

const collectionIdOrAlias = 12345

getDatasetTemplates.execute(collectionIdOrAlias).then((datasetTemplates: DatasetTemplate[]) => {
/* ... */
})
```

_See [use case](../src/datasets/domain/useCases/GetDatasetTemplates.ts)_ definition.

#### Add a Dataset Type

Adds a dataset types that can be used at dataset creation.
Expand Down
5 changes: 0 additions & 5 deletions src/collections/domain/repositories/ICollectionsRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { CollectionItemType } from '../../../collections/domain/models/Collectio
import { CollectionLinks } from '../models/CollectionLinks'
import { CollectionSummary } from '../models/CollectionSummary'
import { LinkingObjectType } from '../useCases/GetCollectionsForLinking'
import { CreateDatasetTemplateDTO } from '../dtos/CreateDatasetTemplateDTO'

export interface ICollectionsRepository {
getCollection(collectionIdOrAlias: number | string): Promise<Collection>
Expand Down Expand Up @@ -69,8 +68,4 @@ export interface ICollectionsRepository {
searchTerm: string,
alreadyLinked: boolean
): Promise<CollectionSummary[]>
createDatasetTemplate(
collectionIdOrAlias: number | string,
template: CreateDatasetTemplateDTO
): Promise<void>
}
27 changes: 0 additions & 27 deletions src/collections/domain/useCases/CreateDatasetTemplate.ts

This file was deleted.

5 changes: 1 addition & 4 deletions src/collections/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import { LinkCollection } from './domain/useCases/LinkCollection'
import { UnlinkCollection } from './domain/useCases/UnlinkCollection'
import { GetCollectionLinks } from './domain/useCases/GetCollectionLinks'
import { GetCollectionsForLinking } from './domain/useCases/GetCollectionsForLinking'
import { CreateDatasetTemplate } from './domain/useCases/CreateDatasetTemplate'

const collectionsRepository = new CollectionsRepository()

Expand All @@ -37,7 +36,6 @@ const linkCollection = new LinkCollection(collectionsRepository)
const unlinkCollection = new UnlinkCollection(collectionsRepository)
const getCollectionLinks = new GetCollectionLinks(collectionsRepository)
const getCollectionsForLinking = new GetCollectionsForLinking(collectionsRepository)
const createDatasetTemplate = new CreateDatasetTemplate(collectionsRepository)

export {
getCollection,
Expand All @@ -56,8 +54,7 @@ export {
linkCollection,
unlinkCollection,
getCollectionLinks,
getCollectionsForLinking,
createDatasetTemplate
getCollectionsForLinking
}
export { Collection, CollectionInputLevel } from './domain/models/Collection'
export { CollectionFacet } from './domain/models/CollectionFacet'
Expand Down
15 changes: 0 additions & 15 deletions src/collections/infra/repositories/CollectionsRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ import { ReadError } from '../../../core/domain/repositories/ReadError'
import { CollectionLinks } from '../../domain/models/CollectionLinks'
import { CollectionSummary } from '../../domain/models/CollectionSummary'
import { LinkingObjectType } from '../../domain/useCases/GetCollectionsForLinking'
import { CreateDatasetTemplateDTO } from '../../domain/dtos/CreateDatasetTemplateDTO'

export interface NewCollectionRequestPayload {
alias: string
Expand Down Expand Up @@ -529,18 +528,4 @@ export class CollectionsRepository extends ApiRepository implements ICollections
throw error
})
}

public async createDatasetTemplate(
collectionIdOrAlias: number | string,
template: CreateDatasetTemplateDTO
): Promise<void> {
return this.doPost(
`/${this.collectionsResourceName}/${collectionIdOrAlias}/templates`,
template
)
.then(() => undefined)
.catch((error) => {
throw error
})
}
}
2 changes: 0 additions & 2 deletions src/datasets/domain/repositories/IDatasetsRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { DatasetVersionSummarySubset } from '../models/DatasetVersionSummaryInfo
import { DatasetLinkedCollection } from '../models/DatasetLinkedCollection'
import { CitationFormat } from '../models/CitationFormat'
import { FormattedCitation } from '../models/FormattedCitation'
import { DatasetTemplate } from '../models/DatasetTemplate'
import { DatasetType } from '../models/DatasetType'
import { TermsOfAccess } from '../models/Dataset'
import { DatasetLicenseUpdateRequest } from '../dtos/DatasetLicenseUpdateRequest'
Expand Down Expand Up @@ -84,7 +83,6 @@ export interface IDatasetsRepository {
format: CitationFormat,
includeDeaccessioned?: boolean
): Promise<FormattedCitation>
getDatasetTemplates(collectionIdOrAlias: number | string): Promise<DatasetTemplate[]>
getDatasetAvailableDatasetTypes(): Promise<DatasetType[]>
getDatasetAvailableDatasetType(datasetTypeId: number | string): Promise<DatasetType>
addDatasetType(datasetType: DatasetTypeDTO): Promise<DatasetType>
Expand Down
25 changes: 0 additions & 25 deletions src/datasets/domain/useCases/GetDatasetTemplates.ts

This file was deleted.

3 changes: 0 additions & 3 deletions src/datasets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import { LinkDatasetTypeWithMetadataBlocks } from './domain/useCases/LinkDataset
import { SetAvailableLicensesForDatasetType } from './domain/useCases/SetAvailableLicensesForDatasetType'
import { DeleteDatasetType } from './domain/useCases/DeleteDatasetType'
import { GetDatasetCitationInOtherFormats } from './domain/useCases/GetDatasetCitationInOtherFormats'
import { GetDatasetTemplates } from './domain/useCases/GetDatasetTemplates'
import { UpdateTermsOfAccess } from './domain/useCases/UpdateTermsOfAccess'
import { UpdateDatasetLicense } from './domain/useCases/UpdateDatasetLicense'

Expand Down Expand Up @@ -81,7 +80,6 @@ const setAvailableLicensesForDatasetType = new SetAvailableLicensesForDatasetTyp
)
const deleteDatasetType = new DeleteDatasetType(datasetsRepository)
const getDatasetCitationInOtherFormats = new GetDatasetCitationInOtherFormats(datasetsRepository)
const getDatasetTemplates = new GetDatasetTemplates(datasetsRepository)
const updateTermsOfAccess = new UpdateTermsOfAccess(datasetsRepository)
const updateDatasetLicense = new UpdateDatasetLicense(datasetsRepository)

Expand All @@ -107,7 +105,6 @@ export {
getDatasetLinkedCollections,
getDatasetAvailableCategories,
getDatasetCitationInOtherFormats,
getDatasetTemplates,
updateTermsOfAccess,
getDatasetAvailableDatasetTypes,
getDatasetAvailableDatasetType,
Expand Down
16 changes: 0 additions & 16 deletions src/datasets/infra/repositories/DatasetsRepository.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { AxiosResponse } from 'axios'
import { ApiRepository } from '../../../core/infra/repositories/ApiRepository'
import { IDatasetsRepository } from '../../domain/repositories/IDatasetsRepository'
import { Dataset, VersionUpdateType } from '../../domain/models/Dataset'
Expand All @@ -25,9 +24,6 @@ import { DatasetLinkedCollection } from '../../domain/models/DatasetLinkedCollec
import { CitationFormat } from '../../domain/models/CitationFormat'
import { transformDatasetLinkedCollectionsResponseToDatasetLinkedCollection } from './transformers/datasetLinkedCollectionsTransformers'
import { FormattedCitation } from '../../domain/models/FormattedCitation'
import { DatasetTemplate } from '../../domain/models/DatasetTemplate'
import { DatasetTemplatePayload } from './transformers/DatasetTemplatePayload'
import { transformDatasetTemplatePayloadToDatasetTemplate } from './transformers/datasetTemplateTransformers'
import { DatasetType } from '../../domain/models/DatasetType'
import { TermsOfAccess } from '../../domain/models/Dataset'
import { transformTermsOfAccessToUpdatePayload } from './transformers/termsOfAccessTransformers'
Expand Down Expand Up @@ -402,18 +398,6 @@ export class DatasetsRepository extends ApiRepository implements IDatasetsReposi
})
}

public async getDatasetTemplates(
collectionIdOrAlias: number | string
): Promise<DatasetTemplate[]> {
return this.doGet(`/dataverses/${collectionIdOrAlias}/templates`, true)
.then((response: AxiosResponse<{ data: DatasetTemplatePayload[] }>) =>
transformDatasetTemplatePayloadToDatasetTemplate(response.data.data)
)
.catch((error) => {
throw error
})
}

public async getDatasetAvailableDatasetTypes(): Promise<DatasetType[]> {
return this.doGet(this.buildApiEndpoint(this.datasetsResourceName, 'datasetTypes'))
.then((response) => response.data.data)
Expand Down
Loading