Skip to content

Commit 8a93249

Browse files
committed
Added: inputLevels to Collection model
1 parent 5ec471f commit 8a93249

File tree

6 files changed

+55
-8
lines changed

6 files changed

+55
-8
lines changed

src/collections/domain/dtos/CollectionDTO.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ export interface CollectionDTO {
77
description?: string
88
metadataBlockNames: string[]
99
facetIds?: string[]
10-
inputLevels?: DatasetFieldTypeInputLevelDTO[]
10+
inputLevels?: CollectionInputLevelDTO[]
1111
}
1212

13-
export interface DatasetFieldTypeInputLevelDTO {
13+
export interface CollectionInputLevelDTO {
1414
datasetFieldName: string
1515
include: boolean
1616
required: boolean

src/collections/domain/models/Collection.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { DvObjectOwnerNode } from '../../../core'
2+
23
export interface Collection {
34
id: number
45
alias: string
@@ -7,6 +8,13 @@ export interface Collection {
78
affiliation?: string
89
description?: string
910
isPartOf: DvObjectOwnerNode
11+
inputLevels?: CollectionInputLevel[]
12+
}
13+
14+
export interface CollectionInputLevel {
15+
datasetFieldName: string
16+
include: boolean
17+
required: boolean
1018
}
1119

1220
export const ROOT_COLLECTION_ALIAS = 'root'

src/collections/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ const createCollection = new CreateCollection(collectionsRepository)
1111
const getCollectionFacets = new GetCollectionFacets(collectionsRepository)
1212

1313
export { getCollection, createCollection, getCollectionFacets }
14-
export { Collection } from './domain/models/Collection'
15-
export { CollectionDTO, DatasetFieldTypeInputLevelDTO } from './domain/dtos/CollectionDTO'
14+
export { Collection, CollectionInputLevel } from './domain/models/Collection'
15+
export { CollectionDTO, CollectionInputLevelDTO } from './domain/dtos/CollectionDTO'

src/collections/infra/repositories/transformers/CollectionPayload.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { OwnerNodePayload } from '../../../../core/infra/repositories/transformers/OwnerNodePayload'
2+
23
export interface CollectionPayload {
34
id: number
45
alias: string
@@ -7,4 +8,11 @@ export interface CollectionPayload {
78
isReleased: string
89
description?: string
910
isPartOf: OwnerNodePayload
11+
inputLevels?: CollectionInputLevelPayload[]
12+
}
13+
14+
export interface CollectionInputLevelPayload {
15+
datasetFieldTypeName: string
16+
required: boolean
17+
include: boolean
1018
}

src/collections/infra/repositories/transformers/collectionTransformers.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Collection } from '../../../domain/models/Collection'
1+
import { Collection, CollectionInputLevel } from '../../../domain/models/Collection'
22
import { AxiosResponse } from 'axios'
3-
import { CollectionPayload } from './CollectionPayload'
3+
import { CollectionInputLevelPayload, CollectionPayload } from './CollectionPayload'
44
import { transformPayloadToOwnerNode } from '../../../../core/infra/repositories/transformers/dvObjectOwnerNodeTransformer'
55
import { transformHtmlToMarkdown } from '../../../../datasets/infra/repositories/transformers/datasetTransformers'
66

@@ -21,7 +21,24 @@ const transformPayloadToCollection = (collectionPayload: CollectionPayload): Col
2121
}),
2222
...(collectionPayload.isPartOf && {
2323
isPartOf: transformPayloadToOwnerNode(collectionPayload.isPartOf)
24+
}),
25+
...(collectionPayload.inputLevels && {
26+
inputLevels: transformInputLevelsPayloadToInputLevels(collectionPayload.inputLevels)
2427
})
2528
}
2629
return collectionModel
2730
}
31+
32+
const transformInputLevelsPayloadToInputLevels = (
33+
inputLevelsPayload: CollectionInputLevelPayload[]
34+
): CollectionInputLevel[] => {
35+
let collectionInputLevels: CollectionInputLevel[] = []
36+
inputLevelsPayload.forEach((element) => {
37+
collectionInputLevels.push({
38+
datasetFieldName: element.datasetFieldTypeName,
39+
include: element.include,
40+
required: element.required
41+
})
42+
})
43+
return collectionInputLevels
44+
}

test/testHelpers/collections/collectionHelper.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ export const createCollectionModel = (): Collection => {
2727
isReleased: COLLECTION_IS_RELEASED,
2828
affiliation: COLLECTION_AFFILIATION_STR,
2929
description: COLLECTION_DESCRIPTION_MARKDOWN,
30-
isPartOf: { type: DvObjectType.DATAVERSE, identifier: 'root', displayName: 'Root' }
30+
isPartOf: { type: DvObjectType.DATAVERSE, identifier: 'root', displayName: 'Root' },
31+
inputLevels: [
32+
{
33+
datasetFieldName: 'test',
34+
required: true,
35+
include: true
36+
}
37+
]
3138
}
3239
return collectionModel
3340
}
@@ -40,7 +47,14 @@ export const createCollectionPayload = (): CollectionPayload => {
4047
isReleased: COLLECTION_IS_RELEASED,
4148
affiliation: COLLECTION_AFFILIATION_STR,
4249
description: COLLECTION_DESCRIPTION_HTML,
43-
isPartOf: { type: DvObjectType.DATAVERSE, identifier: 'root', displayName: 'Root' }
50+
isPartOf: { type: DvObjectType.DATAVERSE, identifier: 'root', displayName: 'Root' },
51+
inputLevels: [
52+
{
53+
datasetFieldTypeName: 'test',
54+
required: true,
55+
include: true
56+
}
57+
]
4458
}
4559
return collectionPayload
4660
}

0 commit comments

Comments
 (0)