Skip to content

Commit ad571e5

Browse files
committed
fix: add totalCount to version summaries
1 parent 8c22c5b commit ad571e5

File tree

16 files changed

+190
-107
lines changed

16 files changed

+190
-107
lines changed

src/datasets/domain/models/DatasetVersionSummaryInfo.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ export interface DatasetVersionSummaryInfo {
66
publishedOn?: string
77
}
88

9+
export interface DatasetVersionSummarySubset {
10+
summaries: DatasetVersionSummaryInfo[]
11+
totalCount: number
12+
}
13+
914
export type DatasetVersionSummary = {
1015
[key: string]:
1116
| SummaryUpdates

src/datasets/domain/repositories/IDatasetsRepository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { DatasetDeaccessionDTO } from '../dtos/DatasetDeaccessionDTO'
88
import { MetadataBlock } from '../../../metadataBlocks'
99
import { DatasetVersionDiff } from '../models/DatasetVersionDiff'
1010
import { DatasetDownloadCount } from '../models/DatasetDownloadCount'
11-
import { DatasetVersionSummaryInfo } from '../models/DatasetVersionSummaryInfo'
11+
import { DatasetVersionSummarySubset } from '../models/DatasetVersionSummaryInfo'
1212
import { DatasetLinkedCollection } from '../models/DatasetLinkedCollection'
1313
import { CitationFormat } from '../models/CitationFormat'
1414
import { FormattedCitation } from '../models/FormattedCitation'
@@ -70,7 +70,7 @@ export interface IDatasetsRepository {
7070
datasetId: number | string,
7171
limit?: number,
7272
offset?: number
73-
): Promise<DatasetVersionSummaryInfo[]>
73+
): Promise<DatasetVersionSummarySubset>
7474
deleteDatasetDraft(datasetId: number | string): Promise<void>
7575
linkDataset(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void>
7676
unlinkDataset(datasetId: number | string, collectionIdOrAlias: number | string): Promise<void>

src/datasets/domain/useCases/GetDatasetVersionsSummaries.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { UseCase } from '../../../core/domain/useCases/UseCase'
2-
import { DatasetVersionSummaryInfo } from '../models/DatasetVersionSummaryInfo'
2+
import { DatasetVersionSummarySubset } from '../models/DatasetVersionSummaryInfo'
33
import { IDatasetsRepository } from '../repositories/IDatasetsRepository'
44

5-
export class GetDatasetVersionsSummaries implements UseCase<DatasetVersionSummaryInfo[]> {
5+
export class GetDatasetVersionsSummaries implements UseCase<DatasetVersionSummarySubset> {
66
private datasetsRepository: IDatasetsRepository
77

88
constructor(datasetsRepository: IDatasetsRepository) {
@@ -16,13 +16,13 @@ export class GetDatasetVersionsSummaries implements UseCase<DatasetVersionSummar
1616
* @param {number | string} [datasetId] - The dataset identifier, which can be a string (for persistent identifiers), or a number (for numeric identifiers).
1717
* @param {number} [limit] - Limit for pagination (optional).
1818
* @param {number} [offset] - Offset for pagination (optional).
19-
* @returns {Promise<DatasetVersionSummaryInfo[]>} - An array of DatasetVersionSummaryInfo.
19+
* @returns {Promise<DatasetVersionSummarySubset>} - A DatasetVersionSummarySubset containing the summaries and total count.
2020
*/
2121
async execute(
2222
datasetId: number | string,
2323
limit?: number,
2424
offset?: number
25-
): Promise<DatasetVersionSummaryInfo[]> {
25+
): Promise<DatasetVersionSummarySubset> {
2626
return await this.datasetsRepository.getDatasetVersionsSummaries(datasetId, limit, offset)
2727
}
2828
}

src/datasets/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ export { CreatedDatasetIdentifiers } from './domain/models/CreatedDatasetIdentif
141141
export { VersionUpdateType } from './domain/models/Dataset'
142142
export {
143143
DatasetVersionSummaryInfo,
144-
DatasetVersionSummaryStringValues
144+
DatasetVersionSummaryStringValues,
145+
DatasetVersionSummarySubset
145146
} from './domain/models/DatasetVersionSummaryInfo'
146147
export { DatasetLinkedCollection } from './domain/models/DatasetLinkedCollection'
147148
export { DatasetType } from './domain/models/DatasetType'

src/datasets/infra/repositories/DatasetsRepository.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { transformDatasetPreviewsResponseToDatasetPreviewSubset } from './transf
2020
import { DatasetVersionDiff } from '../../domain/models/DatasetVersionDiff'
2121
import { transformDatasetVersionDiffResponseToDatasetVersionDiff } from './transformers/datasetVersionDiffTransformers'
2222
import { DatasetDownloadCount } from '../../domain/models/DatasetDownloadCount'
23-
import { DatasetVersionSummaryInfo } from '../../domain/models/DatasetVersionSummaryInfo'
23+
import { DatasetVersionSummarySubset } from '../../domain/models/DatasetVersionSummaryInfo'
2424
import { DatasetLinkedCollection } from '../../domain/models/DatasetLinkedCollection'
2525
import { CitationFormat } from '../../domain/models/CitationFormat'
2626
import { transformDatasetLinkedCollectionsResponseToDatasetLinkedCollection } from './transformers/datasetLinkedCollectionsTransformers'
@@ -309,18 +309,26 @@ export class DatasetsRepository extends ApiRepository implements IDatasetsReposi
309309
datasetId: string | number,
310310
limit?: number,
311311
offset?: number
312-
): Promise<DatasetVersionSummaryInfo[]> {
313-
const queryParams: { limit?: string; offset?: string } = {
314-
limit: limit?.toString(),
315-
offset: offset?.toString()
312+
): Promise<DatasetVersionSummarySubset> {
313+
const queryParams = new URLSearchParams()
314+
315+
if (limit) {
316+
queryParams.set('limit', limit.toString())
317+
}
318+
319+
if (offset) {
320+
queryParams.set('offset', offset.toString())
316321
}
317322

318323
return this.doGet(
319324
this.buildApiEndpoint(this.datasetsResourceName, 'versions/compareSummary', datasetId),
320325
true,
321326
queryParams
322327
)
323-
.then((response) => response.data.data)
328+
.then((response) => ({
329+
summaries: response.data.data,
330+
totalCount: response.data.totalCount
331+
}))
324332
.catch((error) => {
325333
throw error
326334
})

src/files/domain/models/FileVersionSummaryInfo.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ export interface FileVersionSummaryInfo {
1111
versionNote?: string
1212
}
1313

14+
export interface FileVersionSummarySubset {
15+
summaries: FileVersionSummaryInfo[]
16+
totalCount: number
17+
}
18+
1419
export type FileDifferenceSummary = {
1520
file?: FileChangeType
1621
fileAccess?: 'Restricted' | 'Unrestricted'

src/files/domain/repositories/IFilesRepository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { FileUploadDestination } from '../models/FileUploadDestination'
1010
import { UploadedFileDTO } from '../dtos/UploadedFileDTO'
1111
import { UpdateFileMetadataDTO } from '../dtos/UpdateFileMetadataDTO'
1212
import { RestrictFileDTO } from '../dtos/RestrictFileDTO'
13-
import { FileVersionSummaryInfo } from '../models/FileVersionSummaryInfo'
13+
import { FileVersionSummarySubset } from '../models/FileVersionSummaryInfo'
1414

1515
export interface IFilesRepository {
1616
getDatasetFiles(
@@ -92,7 +92,7 @@ export interface IFilesRepository {
9292
fileId: number | string,
9393
limit?: number,
9494
offset?: number
95-
): Promise<FileVersionSummaryInfo[]>
95+
): Promise<FileVersionSummarySubset>
9696

9797
isFileDeleted(fileId: number | string): Promise<boolean>
9898
}

src/files/domain/useCases/GetFileVersionSummaries.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { UseCase } from '../../../core/domain/useCases/UseCase'
2-
import { FileVersionSummaryInfo } from '../models/FileVersionSummaryInfo'
2+
import { FileVersionSummarySubset } from '../models/FileVersionSummaryInfo'
33
import { IFilesRepository } from '../repositories/IFilesRepository'
44

5-
export class GetFileVersionSummaries implements UseCase<FileVersionSummaryInfo[]> {
5+
export class GetFileVersionSummaries implements UseCase<FileVersionSummarySubset> {
66
private filesRepository: IFilesRepository
77

88
constructor(filesRepository: IFilesRepository) {
@@ -15,13 +15,13 @@ export class GetFileVersionSummaries implements UseCase<FileVersionSummaryInfo[]
1515
* @param {number | string} [fileId] - The file identifier, which can be a string (for persistent identifiers), or a number (for numeric identifiers).
1616
* @param {number} [limit] - Limit for pagination (optional).
1717
* @param {number} [offset] - Offset for pagination (optional).
18-
* @returns {Promise<FileVersionSummaryInfo[]>} - An array of FileVersionSummaryInfo.
18+
* @returns {Promise<FileVersionSummarySubset>} - A FileVersionSummarySubset containing the summaries and total count.
1919
*/
2020
async execute(
2121
fileId: number | string,
2222
limit?: number,
2323
offset?: number
24-
): Promise<FileVersionSummaryInfo[]> {
24+
): Promise<FileVersionSummarySubset> {
2525
return await this.filesRepository.getFileVersionSummaries(fileId, limit, offset)
2626
}
2727
}

src/files/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,10 @@ export { FilesSubset } from './domain/models/FilesSubset'
9393
export { FilePreview, FilePreviewChecksum } from './domain/models/FilePreview'
9494
export { UploadedFileDTO } from './domain/dtos/UploadedFileDTO'
9595
export { UpdateFileMetadataDTO } from './domain/dtos/UpdateFileMetadataDTO'
96+
export {
97+
FileVersionSummaryInfo,
98+
FileDifferenceSummary,
99+
FileChangeType,
100+
FileMetadataChange,
101+
FileVersionSummarySubset
102+
} from './domain/models/FileVersionSummaryInfo'

src/files/infra/repositories/FilesRepository.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { UploadedFileDTO } from '../../domain/dtos/UploadedFileDTO'
2222
import { UpdateFileMetadataDTO } from '../../domain/dtos/UpdateFileMetadataDTO'
2323
import { ApiConstants } from '../../../core/infra/repositories/ApiConstants'
2424
import { RestrictFileDTO } from '../../domain/dtos/RestrictFileDTO'
25-
import { FileVersionSummaryInfo } from '../../domain/models/FileVersionSummaryInfo'
25+
import { FileVersionSummarySubset } from '../../domain/models/FileVersionSummaryInfo'
2626
import { transformFileVersionSummaryInfoResponseToFileVersionSummaryInfo } from './transformers/fileVersionSummaryInfoTransformers'
2727

2828
export interface GetFilesQueryParams {
@@ -427,10 +427,15 @@ export class FilesRepository extends ApiRepository implements IFilesRepository {
427427
fileId: number | string,
428428
limit?: number,
429429
offset?: number
430-
): Promise<FileVersionSummaryInfo[]> {
431-
const queryParams: { limit?: string; offset?: string } = {
432-
limit: limit?.toString(),
433-
offset: offset?.toString()
430+
): Promise<FileVersionSummarySubset> {
431+
const queryParams = new URLSearchParams()
432+
433+
if (limit) {
434+
queryParams.set('limit', limit.toString())
435+
}
436+
437+
if (offset) {
438+
queryParams.set('offset', offset.toString())
434439
}
435440

436441
return this.doGet(

0 commit comments

Comments
 (0)