Skip to content

Commit 5460b06

Browse files
committed
Stash: collection preview added and properties added to other previews WIP
1 parent c85ac1c commit 5460b06

File tree

13 files changed

+76
-9
lines changed

13 files changed

+76
-9
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { DatasetPreview } from '../../../datasets'
22
import { FilePreview } from '../../../files'
3+
import { CollectionPreview } from './CollectionPreview'
34

45
export interface CollectionItemSubset {
5-
items: (DatasetPreview | FilePreview)[]
6+
items: (CollectionPreview | DatasetPreview | FilePreview)[]
67
totalItemCount: number
78
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { PublicationStatus } from '../../../core/domain/models/PublicationStatus'
2+
3+
export interface CollectionPreview {
4+
name: string
5+
parentName: string
6+
alias: string
7+
parentAlias: string
8+
description: string
9+
affiliation: string
10+
publicationStatuses: PublicationStatus[]
11+
releaseOrCreateDate: Date
12+
imageUrl?: string
13+
}

src/collections/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ export { Collection, CollectionInputLevel } from './domain/models/Collection'
2525
export { CollectionFacet } from './domain/models/CollectionFacet'
2626
export { CollectionUserPermissions } from './domain/models/CollectionUserPermissions'
2727
export { CollectionDTO, CollectionInputLevelDTO } from './domain/dtos/CollectionDTO'
28+
export { CollectionPreview } from './domain/models/CollectionPreview'

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ export class CollectionsRepository extends ApiRepository implements ICollections
143143
if (offset !== undefined) {
144144
queryParams.start = offset
145145
}
146-
return this.doGet('/search?q=*&type=dataset&type=file&sort=date&order=desc', true, queryParams)
146+
return this.doGet('/search?q=*&sort=date&order=desc', true, queryParams)
147147
.then((response) => transformCollectionItemsResponseToCollectionItemSubset(response))
148148
.catch((error) => {
149149
throw error
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
export interface CollectionPreviewPayload {
2+
name: string
3+
parentDataverseName: string
4+
identifier: string
5+
parentDataverseIdentifier: string
6+
url: string
7+
image_url: string
8+
description: string
9+
type?: string
10+
publicationStatuses: string[]
11+
affiliation: string
12+
published_at: string
13+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { PublicationStatus } from '../../../../core/domain/models/PublicationStatus'
2+
import { CollectionPreview } from '../../../domain/models/CollectionPreview'
3+
import { CollectionPreviewPayload } from './CollectionPreviewPayload'
4+
5+
export const transformCollectionPreviewPayloadToCollectionPreview = (
6+
collectionPreviewPayload: CollectionPreviewPayload
7+
): CollectionPreview => {
8+
const publicationStatuses: PublicationStatus[] = []
9+
collectionPreviewPayload.publicationStatuses.forEach((element) => {
10+
publicationStatuses.push(element as unknown as PublicationStatus)
11+
})
12+
return {
13+
name: collectionPreviewPayload.name,
14+
parentName: collectionPreviewPayload.parentDataverseName,
15+
alias: collectionPreviewPayload.identifier,
16+
parentAlias: collectionPreviewPayload.parentDataverseIdentifier,
17+
description: collectionPreviewPayload.description,
18+
publicationStatuses: publicationStatuses,
19+
affiliation: collectionPreviewPayload.affiliation,
20+
...(collectionPreviewPayload.image_url && {
21+
imageUrl: collectionPreviewPayload.image_url
22+
}),
23+
releaseOrCreateDate: new Date(collectionPreviewPayload.published_at)
24+
}
25+
}

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import { DatasetPreviewPayload } from '../../../../datasets/infra/repositories/t
1212
import { FilePreviewPayload } from '../../../../files/infra/repositories/transformers/FilePreviewPayload'
1313
import { transformDatasetPreviewPayloadToDatasetPreview } from '../../../../datasets/infra/repositories/transformers/datasetPreviewsTransformers'
1414
import { transformFilePreviewPayloadToFilePreview } from '../../../../files/infra/repositories/transformers/filePreviewTransformers'
15+
import { transformCollectionPreviewPayloadToCollectionPreview } from './collectionPreviewsTransformers'
16+
import { CollectionPreviewPayload } from './CollectionPreviewPayload'
17+
import { CollectionPreview } from '../../../domain/models/CollectionPreview'
1518

1619
export const transformCollectionResponseToCollection = (response: AxiosResponse): Collection => {
1720
const collectionPayload = response.data.data
@@ -64,14 +67,20 @@ export const transformCollectionItemsResponseToCollectionItemSubset = (
6467
): CollectionItemSubset => {
6568
const responseDataPayload = response.data.data
6669
const itemsPayload = responseDataPayload.items
67-
const items: (DatasetPreview | FilePreview)[] = []
70+
const items: (DatasetPreview | FilePreview | CollectionPreview)[] = []
6871
itemsPayload.forEach(function (itemPayload: DatasetPreviewPayload | FilePreviewPayload) {
6972
if (itemPayload.type == 'file') {
7073
items.push(transformFilePreviewPayloadToFilePreview(itemPayload as FilePreviewPayload))
7174
} else if (itemPayload.type == 'dataset') {
7275
items.push(
7376
transformDatasetPreviewPayloadToDatasetPreview(itemPayload as DatasetPreviewPayload)
7477
)
78+
} else if (itemPayload.type == 'dataverse') {
79+
items.push(
80+
transformCollectionPreviewPayloadToCollectionPreview(
81+
itemPayload as unknown as CollectionPreviewPayload
82+
)
83+
)
7584
}
7685
})
7786
return {

src/files/domain/models/FilePreview.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface FilePreview {
1818
datasetPersistentId: string
1919
datasetCitation: string
2020
publicationStatuses: PublicationStatus[]
21+
releaseOrCreateDate: Date
2122
}
2223

2324
export interface FilePreviewChecksum {

src/files/infra/repositories/transformers/FilePreviewPayload.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface FilePreviewPayload {
1818
dataset_persistent_id: string
1919
dataset_citation: string
2020
publicationStatuses: string[]
21+
releaseOrCreateDate: string
2122
}
2223

2324
export interface FilePreviewChecksumPayload {

src/files/infra/repositories/transformers/filePreviewTransformers.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export const transformFilePreviewPayloadToFilePreview = (
3434
datasetId: Number(filePreviewPayload.dataset_id),
3535
datasetPersistentId: filePreviewPayload.dataset_persistent_id,
3636
datasetCitation: filePreviewPayload.dataset_citation,
37-
publicationStatuses: publicationStatuses
37+
publicationStatuses: publicationStatuses,
38+
releaseOrCreateDate: new Date(filePreviewPayload.releaseOrCreateDate)
3839
}
3940
}

0 commit comments

Comments
 (0)