Skip to content

Commit cbbff32

Browse files
committed
rename createDatasetTemplate to createTemplate, and clean GetTemplatesByCollectionId
1 parent 5b57f4c commit cbbff32

File tree

11 files changed

+72
-37
lines changed

11 files changed

+72
-37
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
1818
### Changed
1919

2020
- Add pagination query parameters to Dataset Version Summeries and File Version Summaries use cases.
21+
- Templates: Rename `CreateDatasetTemplateDTO` to `CreateTemplateDTO`.
22+
- Templates: Rename `createDatasetTemplate` repository method to `createTemplate`.
2123
- Templates: Rename `getDatasetTemplates` repository method to `getTemplatesByCollectionId`.
2224

2325
### Fixed
@@ -53,7 +55,7 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
5355

5456
- Use cases for External Tools: GetExternalTools, GetDatasetExternalToolResolved, GetFileExternalToolResolved.
5557

56-
- Use case: GetDatasetTemplates.
58+
- Use case: GetTemplatesByCollectionId.
5759

5860
- Use case: GetAvailableStandardLicenses.
5961

docs/useCases.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ The different use cases currently available in the package are classified below,
2828
- [Templates](#Templates)
2929
- [Templates read use cases](#templates-read-use-cases)
3030
- [Get a Template](#get-a-template)
31-
- [Get Dataset Templates](#get-dataset-templates)
31+
- [Get Templates By Collection Id](#get-templates-by-collection-id)
3232
- [Templates write use cases](#templates-write-use-cases)
3333
- [Create a Template](#create-a-template)
3434
- [Delete a Template](#delete-a-template)
@@ -596,23 +596,24 @@ getTemplate.execute(templateId).then((template: Template) => {
596596

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

599-
#### Get Dataset Templates
599+
#### Get Templates By Collection Id
600600

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

603603
##### Example call:
604604

605605
```typescript
606-
import { getDatasetTemplates } from '@iqss/dataverse-client-javascript'
606+
import { getTemplatesByCollectionId } from '@iqss/dataverse-client-javascript'
607607

608608
const collectionIdOrAlias = 12345
609609

610-
getDatasetTemplates.execute(collectionIdOrAlias).then((datasetTemplates: Template[]) => {
610+
getTemplatesByCollectionId.execute(collectionIdOrAlias).then((template: Template[]) => {
611611
/* ... */
612612
})
613613
```
614614

615-
_See [use case](../src/templates/domain/useCases/GetDatasetTemplates.ts)_ definition.
615+
_See [use case](../src/templates/domain/useCases/GetTemplatesByCollectionId.ts)_ definition.
616+
Repository implementation uses `getTemplatesByCollectionId`.
616617

617618
### Templates Write Use Cases
618619

@@ -650,6 +651,7 @@ await createTemplate.execute(template, collectionAlias)
650651
```
651652

652653
_See [use case](../src/templates/domain/useCases/CreateTemplate.ts) implementation_.
654+
Repository implementation uses `createTemplate`.
653655

654656
#### Delete a Template
655657

src/templates/domain/repositories/ITemplatesRepository.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import { CreateTemplateDTO } from '../dtos/CreateTemplateDTO'
22
import { Template } from '../models/Template'
33

44
export interface ITemplatesRepository {
5-
createDatasetTemplate(
6-
collectionIdOrAlias: number | string,
7-
template: CreateTemplateDTO
8-
): Promise<void>
5+
createTemplate(collectionIdOrAlias: number | string, template: CreateTemplateDTO): Promise<void>
96
getTemplate(templateId: number): Promise<Template>
107
getTemplatesByCollectionId(collectionIdOrAlias: number | string): Promise<Template[]>
118
deleteTemplate(templateId: number): Promise<void>

src/templates/domain/useCases/CreateTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ export class CreateTemplate implements UseCase<void> {
2222
template: CreateTemplateDTO,
2323
collectionIdOrAlias: number | string = ROOT_COLLECTION_ID
2424
): Promise<void> {
25-
return await this.templatesRepository.createDatasetTemplate(collectionIdOrAlias, template)
25+
return await this.templatesRepository.createTemplate(collectionIdOrAlias, template)
2626
}
2727
}

src/templates/domain/useCases/GetDatasetTemplates.ts renamed to src/templates/domain/useCases/GetTemplatesByCollectionId.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { UseCase } from '../../../core/domain/useCases/UseCase'
33
import { Template } from '../models/Template'
44
import { ITemplatesRepository } from '../repositories/ITemplatesRepository'
55

6-
export class GetDatasetTemplates implements UseCase<Template[]> {
6+
export class GetTemplatesByCollectionId implements UseCase<Template[]> {
77
private templatesRepository: ITemplatesRepository
88

99
constructor(templatesRepository: ITemplatesRepository) {

src/templates/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { TemplatesRepository } from './infra/repositories/TemplatesRepository'
22
import { CreateTemplate } from './domain/useCases/CreateTemplate'
33
import { DeleteTemplate } from './domain/useCases/DeleteTemplate'
4-
import { GetDatasetTemplates } from './domain/useCases/GetDatasetTemplates'
4+
import { GetTemplatesByCollectionId } from './domain/useCases/GetTemplatesByCollectionId'
55
import { GetTemplate } from './domain/useCases/GetTemplate'
66

77
const templatesRepository = new TemplatesRepository()
88

99
const createTemplate = new CreateTemplate(templatesRepository)
1010
const deleteTemplate = new DeleteTemplate(templatesRepository)
11-
const getDatasetTemplates = new GetDatasetTemplates(templatesRepository)
11+
const getTemplatesByCollectionId = new GetTemplatesByCollectionId(templatesRepository)
1212
const getTemplate = new GetTemplate(templatesRepository)
1313

14-
export { createTemplate, deleteTemplate, getDatasetTemplates, getTemplate }
14+
export { createTemplate, deleteTemplate, getTemplatesByCollectionId, getTemplate }
1515
export {
1616
CreateTemplateDTO,
1717
TemplateFieldDTO,

src/templates/infra/repositories/TemplatesRepository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
export class TemplatesRepository extends ApiRepository implements ITemplatesRepository {
1313
private readonly collectionsResourceName: string = 'dataverses'
1414

15-
public async createDatasetTemplate(
15+
public async createTemplate(
1616
collectionIdOrAlias: number | string,
1717
template: CreateTemplateDTO
1818
): Promise<void> {

test/functional/templates/createDatasetTemplate.test.ts renamed to test/functional/templates/createTemplate.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ApiConfig } from '../../../src'
22
import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig'
33
import { TestConstants } from '../../testHelpers/TestConstants'
4-
import { createTemplate, getDatasetTemplates } from '../../../src/templates'
4+
import { createTemplate, getTemplatesByCollectionId } from '../../../src/templates'
55
import { CreateTemplateDTO } from '../../../src/templates/domain/dtos/CreateTemplateDTO'
66
import { MetadataFieldTypeClass } from '../../../src/metadataBlocks/domain/models/MetadataBlock'
77
import { deleteDatasetTemplateViaApi } from '../../testHelpers/datasets/datasetTemplatesHelper'
@@ -48,7 +48,7 @@ describe('CreateTemplate.execute', () => {
4848
]
4949
}
5050
await createTemplate.execute(templateDto)
51-
const templates = await getDatasetTemplates.execute(':root')
51+
const templates = await getTemplatesByCollectionId.execute(':root')
5252

5353
expect(templates[templates.length - 1].name).toBe(templateDto.name)
5454
expect(templates[templates.length - 1].isDefault).toBe(templateDto.isDefault)

test/integration/templates/TemplateRepository.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ApiConfig, MetadataFieldTypeClass, WriteError } from '../../../src'
2-
import { createTemplate, getDatasetTemplates } from '../../../src/templates'
2+
import { createTemplate, getTemplatesByCollectionId } from '../../../src/templates'
33
import { CreateTemplateDTO } from '../../../src/templates/domain/dtos/CreateTemplateDTO'
44
import { TemplatesRepository } from '../../../src/templates/infra/repositories/TemplatesRepository'
55
import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig'
@@ -12,7 +12,7 @@ import { deleteDatasetTemplateViaApi } from '../../testHelpers/datasets/datasetT
1212

1313
describe('TemplatesRepository', () => {
1414
const sut: TemplatesRepository = new TemplatesRepository()
15-
const testCollectionAlias = 'testGetDatasetTemplates'
15+
const testCollectionAlias = 'testGetTemplatesByCollectionId'
1616

1717
beforeAll(async () => {
1818
ApiConfig.init(
@@ -62,7 +62,7 @@ describe('TemplatesRepository', () => {
6262

6363
test('should create a template in :root with provided JSON', async () => {
6464
await createTemplate.execute(templateDto)
65-
const templates = await getDatasetTemplates.execute(':root')
65+
const templates = await getTemplatesByCollectionId.execute(':root')
6666

6767
expect(templates[templates.length - 1].name).toBe(templateDto.name)
6868
expect(templates[templates.length - 1].isDefault).toBe(templateDto.isDefault)
@@ -83,7 +83,7 @@ describe('TemplatesRepository', () => {
8383
})
8484
})
8585

86-
describe('getDatasetTemplates', () => {
86+
describe('getTemplatesByCollectionId', () => {
8787
test('should return empty templates', async () => {
8888
const actual = await sut.getTemplatesByCollectionId(testCollectionAlias)
8989

@@ -93,7 +93,7 @@ describe('TemplatesRepository', () => {
9393
test('should return templates for a collection', async () => {
9494
await createTemplate.execute(
9595
{
96-
name: 'Template for GetDatasetTemplates',
96+
name: 'Template for GetTemplatesByCollectionId',
9797
isDefault: false,
9898
fields: [
9999
{
@@ -130,7 +130,7 @@ describe('TemplatesRepository', () => {
130130

131131
expect(actual.length).toBe(1)
132132

133-
expect(actual[0].name).toBe('Template for GetDatasetTemplates')
133+
expect(actual[0].name).toBe('Template for GetTemplatesByCollectionId')
134134
expect(actual[0].isDefault).toBe(false)
135135
expect(actual[0].datasetMetadataBlocks.length).toBe(1)
136136
expect(actual[0].datasetMetadataBlocks[0].name).toBe('citation')
@@ -177,7 +177,7 @@ describe('TemplatesRepository', () => {
177177
},
178178
testCollectionAlias
179179
)
180-
const templates = await getDatasetTemplates.execute(testCollectionAlias)
180+
const templates = await getTemplatesByCollectionId.execute(testCollectionAlias)
181181
const templateId = templates[templates.length - 1].id
182182
const templateExpectedIsDefault = templates[templates.length - 1].isDefault
183183

@@ -234,7 +234,7 @@ describe('TemplatesRepository', () => {
234234
},
235235
testCollectionAlias
236236
)
237-
const templates = await getDatasetTemplates.execute(testCollectionAlias)
237+
const templates = await getTemplatesByCollectionId.execute(testCollectionAlias)
238238
const templateId = templates[templates.length - 1].id
239239

240240
await sut.deleteTemplate(templateId)

test/unit/templates/createDatasetTemplate.test.ts renamed to test/unit/templates/CreateTemplate.test.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,30 @@ describe('execute', () => {
77
const testTemplateDTO = { name: 't' } as CreateTemplateDTO
88
test('should return undefined when repository call is successful', async () => {
99
const templatesRepositoryStub: ITemplatesRepository = {} as ITemplatesRepository
10-
templatesRepositoryStub.createDatasetTemplate = jest.fn().mockResolvedValue(undefined)
10+
templatesRepositoryStub.createTemplate = jest.fn().mockResolvedValue(undefined)
1111
const sut = new CreateTemplate(templatesRepositoryStub)
1212

1313
const actual = await sut.execute(testTemplateDTO)
1414

15-
expect(templatesRepositoryStub.createDatasetTemplate).toHaveBeenCalledWith(
16-
':root',
17-
testTemplateDTO
18-
)
15+
expect(templatesRepositoryStub.createTemplate).toHaveBeenCalledWith(':root', testTemplateDTO)
1916
expect(actual).toBeUndefined()
2017
})
2118

2219
test('should call repository with provided collection id/alias', async () => {
2320
const templatesRepositoryStub: ITemplatesRepository = {} as ITemplatesRepository
24-
templatesRepositoryStub.createDatasetTemplate = jest.fn().mockResolvedValue(undefined)
21+
templatesRepositoryStub.createTemplate = jest.fn().mockResolvedValue(undefined)
2522

2623
const sut = new CreateTemplate(templatesRepositoryStub)
2724
const actual = await sut.execute(testTemplateDTO, 'alias123')
2825

29-
expect(templatesRepositoryStub.createDatasetTemplate).toHaveBeenCalledWith(
30-
'alias123',
31-
testTemplateDTO
32-
)
26+
expect(templatesRepositoryStub.createTemplate).toHaveBeenCalledWith('alias123', testTemplateDTO)
3327

3428
expect(actual).toBeUndefined()
3529
})
3630

3731
test('should return error result on repository error', async () => {
3832
const templatesRepositoryStub: ITemplatesRepository = {} as ITemplatesRepository
39-
templatesRepositoryStub.createDatasetTemplate = jest.fn().mockRejectedValue(new WriteError())
33+
templatesRepositoryStub.createTemplate = jest.fn().mockRejectedValue(new WriteError())
4034
const testCreateTemplate = new CreateTemplate(templatesRepositoryStub)
4135

4236
await expect(testCreateTemplate.execute(testTemplateDTO)).rejects.toThrow(WriteError)

0 commit comments

Comments
 (0)