Skip to content

Commit 1408cdd

Browse files
committed
feat: improve formatting of returned facets
1 parent f6c393a commit 1408cdd

File tree

4 files changed

+38
-44
lines changed

4 files changed

+38
-44
lines changed

src/collections/domain/models/CollectionItemSubset.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ export interface CollectionItemSubset {
99
}
1010

1111
export interface CollectionItemsFacet {
12-
[key: string]: CollectionItemsFacetValue
13-
}
14-
15-
interface CollectionItemsFacetValue {
16-
friendly: string
12+
name: string
13+
friendlyName: string
1714
labels: CollectionItemsFacetLabel[]
1815
}
1916

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,12 @@ export const transformCollectionItemsResponseToCollectionItemSubset = (
107107

108108
const transformedFacets: CollectionItemsFacet[] = Object.entries(facets[0]).map(
109109
([key, facetData]) => ({
110-
[key]: {
111-
friendly: facetData.friendly,
112-
labels: facetData.labels.map((label: Record<string, number>) => {
113-
const [name, count] = Object.entries(label)[0]
114-
return { name, count }
115-
})
116-
}
110+
name: key,
111+
friendlyName: facetData.friendly,
112+
labels: facetData.labels.map((label: Record<string, number>) => {
113+
const [name, count] = Object.entries(label)[0]
114+
return { name, count }
115+
})
117116
})
118117
)
119118

test/integration/collections/CollectionsRepository.test.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -301,63 +301,63 @@ describe('CollectionsRepository', () => {
301301
//prettier-ignore
302302
const expectedFacetsAll = [
303303
{
304-
dvCategory: { friendly: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }] }
304+
name: 'dvCategory', friendlyName: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }]
305305
},
306306
{
307-
publicationStatus: { friendly: 'Publication Status', labels: [{ name: 'Unpublished', count: 3 },{ name: 'Draft', count: 2 }] }
307+
name: 'publicationStatus', friendlyName: 'Publication Status', labels: [{ name: 'Unpublished', count: 3 },{ name: 'Draft', count: 2 }]
308308
},
309309
{
310-
authorName_ss: { friendly: 'Author Name', labels: [{ name: 'Admin, Dataverse', count: 1 },{ name: 'Owner, Dataverse', count: 1 }]}
310+
name: 'authorName_ss', friendlyName: 'Author Name', labels: [{ name: 'Admin, Dataverse', count: 1 },{ name: 'Owner, Dataverse', count: 1 }]
311311
},
312312
{
313-
subject_ss: { friendly: 'Subject', labels: [{ name: 'Medicine, Health and Life Sciences', count: 1 }]}
313+
name: 'subject_ss', friendlyName: 'Subject', labels: [{ name: 'Medicine, Health and Life Sciences', count: 1 }]
314314
},
315315
{
316-
fileTypeGroupFacet: { friendly: 'File Type', labels: [{ name: 'Text', count: 1 }] }
316+
name: 'fileTypeGroupFacet', friendlyName: 'File Type', labels: [{ name: 'Text', count: 1 }]
317317
},
318318
{
319-
fileAccess: { friendly: 'Access', labels: [{ name: 'Public', count: 1 }] }
319+
name: 'fileAccess', friendlyName: 'Access', labels: [{ name: 'Public', count: 1 }]
320320
}
321321
]
322322
//prettier-ignore
323323
const expectedFacetsFromCollectionOnly = [
324324
{
325-
dvCategory: { friendly: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }] }
325+
name: 'dvCategory', friendlyName: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }]
326326
},
327327
{
328-
publicationStatus: { friendly: 'Publication Status', labels: [{ name: 'Unpublished', count: 1 }]}
328+
name: 'publicationStatus', friendlyName: 'Publication Status', labels: [{ name: 'Unpublished', count: 1 }]
329329
}
330330
]
331331
//prettier-ignore
332332
const expectedFacetsFromDatasetOnly = [
333333
{
334-
publicationStatus: { friendly: 'Publication Status', labels: [{ name: 'Draft', count: 1 },{ name: 'Unpublished', count: 1 }] }
334+
name: 'publicationStatus', friendlyName: 'Publication Status', labels: [{ name: 'Draft', count: 1 },{ name: 'Unpublished', count: 1 }]
335335
},
336336
{
337-
authorName_ss: { friendly: 'Author Name', labels: [{ name: 'Admin, Dataverse', count: 1 },{ name: 'Owner, Dataverse', count: 1 }] }
337+
name: 'authorName_ss', friendlyName: 'Author Name', labels: [{ name: 'Admin, Dataverse', count: 1 },{ name: 'Owner, Dataverse', count: 1 }]
338338
},
339339
{
340-
subject_ss: { friendly: 'Subject', labels: [{ name: 'Medicine, Health and Life Sciences', count: 1 }] }
340+
name: 'subject_ss', friendlyName: 'Subject', labels: [{ name: 'Medicine, Health and Life Sciences', count: 1 }]
341341
}
342342
]
343343
//prettier-ignore
344344
const expectedFacetsFromFileOnly = [
345345
{
346-
publicationStatus: { friendly: 'Publication Status', labels: [{ name: 'Draft', count: 1 },{ name: 'Unpublished', count: 1 }] }
346+
name: 'publicationStatus', friendlyName: 'Publication Status', labels: [{ name: 'Draft', count: 1 },{ name: 'Unpublished', count: 1 }]
347347
},
348-
{ fileTypeGroupFacet: { friendly: 'File Type', labels: [{ name: 'Text', count: 1 }] } },
349-
{ fileAccess: { friendly: 'Access', labels: [{ name: 'Public', count: 1 }] } }
348+
{ name: 'fileTypeGroupFacet', friendlyName: 'File Type', labels: [{ name: 'Text', count: 1 }] },
349+
{ name: 'fileAccess', friendlyName: 'Access', labels: [{ name: 'Public', count: 1 }] }
350350
]
351351
//prettier-ignore
352352
const expectedFacetsFromCollectionAndFile = [
353353
{
354-
dvCategory: { friendly: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }] }
354+
name: 'dvCategory', friendlyName: 'Dataverse Category', labels: [{ name: 'Laboratory', count: 1 }]
355355
},
356356
{
357-
publicationStatus: { friendly: 'Publication Status', labels: [{ name: 'Unpublished', count: 2 },{ name: 'Draft', count: 1 }] }
357+
name: 'publicationStatus', friendlyName: 'Publication Status', labels: [{ name: 'Unpublished', count: 2 },{ name: 'Draft', count: 1 }]
358358
},
359-
{ fileTypeGroupFacet: { friendly: 'File Type', labels: [{ name: 'Text', count: 1 }] } },
360-
{ fileAccess: { friendly: 'Access', labels: [{ name: 'Public', count: 1 }] } }
359+
{ name: 'fileTypeGroupFacet', friendlyName: 'File Type', labels: [{ name: 'Text', count: 1 }] },
360+
{ name: 'fileAccess', friendlyName: 'Access', labels: [{ name: 'Public', count: 1 }] }
361361
]
362362

363363
expect(actualFilePreview.checksum?.type).toBe('MD5')

test/testHelpers/collections/collectionItemsFacetsHelper.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@ import { CollectionItemsFacetPayload } from '../../../src/collections/infra/repo
44
export const createCollectionItemsFacetsModel = (): CollectionItemsFacet[] => {
55
return [
66
{
7-
facet1: {
8-
friendly: 'Facet 1',
9-
labels: [
10-
{ name: 'Label 1', count: 5 },
11-
{ name: 'Label 2', count: 4 }
12-
]
13-
}
7+
name: 'facet1',
8+
friendlyName: 'Facet 1',
9+
labels: [
10+
{ name: 'Label 1', count: 5 },
11+
{ name: 'Label 2', count: 4 }
12+
]
1413
},
1514
{
16-
facet2: {
17-
friendly: 'Facet 2',
18-
labels: [
19-
{ name: 'Label 3', count: 8 },
20-
{ name: 'Label 4', count: 9 }
21-
]
22-
}
15+
name: 'facet2',
16+
friendlyName: 'Facet 2',
17+
labels: [
18+
{ name: 'Label 3', count: 8 },
19+
{ name: 'Label 4', count: 9 }
20+
]
2321
}
2422
]
2523
}

0 commit comments

Comments
 (0)