From: Lucas Di Pentima Date: Mon, 15 Nov 2021 18:59:53 +0000 (-0300) Subject: 18215: Requests back only updated fields on collection update calls. X-Git-Tag: 2.4.0~30^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/6207497fa41aecd4c2ca0e8a3488d846d591b31a 18215: Requests back only updated fields on collection update calls. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/src/services/collection-service/collection-service.ts b/src/services/collection-service/collection-service.ts index 92437806..64c73cbf 100644 --- a/src/services/collection-service/collection-service.ts +++ b/src/services/collection-service/collection-service.ts @@ -33,7 +33,8 @@ export class CollectionService extends TrashableResourceService) { - return super.update(uuid, { ...data, preserveVersion: true }); + const select = Object.keys(data) + return super.update(uuid, { ...data, preserveVersion: true }, select); } async files(uuid: string) { diff --git a/src/services/common-service/common-resource-service.ts b/src/services/common-service/common-resource-service.ts index 66e694a0..c6306779 100644 --- a/src/services/common-service/common-resource-service.ts +++ b/src/services/common-service/common-resource-service.ts @@ -37,13 +37,16 @@ export class CommonResourceService extends CommonService return super.create(payload); } - update(uuid: string, data: Partial) { + update(uuid: string, data: Partial, select?: string[]) { let payload: any; if (data !== undefined) { this.readOnlyFields.forEach( field => delete data[field] ); payload = { [this.resourceType.slice(0, -1)]: CommonService.mapKeys(snakeCase)(data), }; + if (select !== undefined && select.length > 0) { + payload.select = ['uuid', ...select.map(field => snakeCase(field))]; + }; } return super.update(uuid, payload); }