Skip to content

Commit 85e1b87

Browse files
committed
refactor: update internalVersionNumber to sourceLastUpdateTime in dataset update methods
1 parent 14d7990 commit 85e1b87

File tree

3 files changed

+6
-8
lines changed

3 files changed

+6
-8
lines changed

src/datasets/domain/repositories/IDatasetsRepository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export interface IDatasetsRepository {
5454
datasetId: number | string,
5555
dataset: DatasetDTO,
5656
datasetMetadataBlocks: MetadataBlock[],
57-
internalVersionNumber?: number
57+
sourceLastUpdateTime?: string
5858
): Promise<void>
5959
deaccessionDataset(
6060
datasetId: number | string,

src/datasets/domain/useCases/UpdateDataset.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class UpdateDataset extends DatasetWriteUseCase<void> {
1818
*
1919
* @param {number | string} [datasetId] - The dataset identifier, which can be a string (for persistent identifiers), or a number (for numeric identifiers).
2020
* @param {DatasetDTO} [updatedDataset] - DatasetDTO object including the updated dataset metadata field values for each metadata block.
21-
* @param {number} [internalVersionNumber] - The internal version number of the dataset. If another user updates the dataset version metadata before you send the update request, data inconsistencies may occur. To prevent this, you can use the optional internalVersionNumber parameter. This parameter must include the internal version number corresponding to the dataset version being updated. Note that internal version numbers increase sequentially with each version update.
21+
* @param {string} [sourceLastUpdateTime] - The lastUpdateTime value from the dataset. Provide it to ensure optimistic concurrency: if the dataset was updated since you retrieved it, the backend can reject the update to prevent overwriting newer changes.
2222
* @returns {Promise<void>} - This method does not return anything upon successful completion.
2323
* @throws {ResourceValidationError} - If there are validation errors related to the provided information.
2424
* @throws {ReadError} - If there are errors while reading data.
@@ -27,15 +27,15 @@ export class UpdateDataset extends DatasetWriteUseCase<void> {
2727
async execute(
2828
datasetId: number | string,
2929
updatedDataset: DatasetDTO,
30-
internalVersionNumber?: number
30+
sourceLastUpdateTime?: string
3131
): Promise<void> {
3232
const metadataBlocks = await this.getNewDatasetMetadataBlocks(updatedDataset)
3333
this.getNewDatasetValidator().validate(updatedDataset, metadataBlocks)
3434
return this.getDatasetsRepository().updateDataset(
3535
datasetId,
3636
updatedDataset,
3737
metadataBlocks,
38-
internalVersionNumber
38+
sourceLastUpdateTime
3939
)
4040
}
4141
}

src/datasets/infra/repositories/DatasetsRepository.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,16 +252,14 @@ export class DatasetsRepository extends ApiRepository implements IDatasetsReposi
252252
datasetId: string | number,
253253
dataset: DatasetDTO,
254254
datasetMetadataBlocks: MetadataBlock[],
255-
internalVersionNumber?: number
255+
sourceLastUpdateTime?: string
256256
): Promise<void> {
257257
return this.doPut(
258258
this.buildApiEndpoint(this.datasetsResourceName, `editMetadata`, datasetId),
259259
transformDatasetModelToUpdateDatasetRequestPayload(dataset, datasetMetadataBlocks),
260260
{
261261
replace: true,
262-
...(typeof internalVersionNumber === 'number' && {
263-
sourceInternalVersionNumber: internalVersionNumber
264-
})
262+
...(sourceLastUpdateTime && { sourceLastUpdateTime })
265263
}
266264
)
267265
.then(() => undefined)

0 commit comments

Comments
 (0)