X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b6ac7fe88d347582d39fffa002e300af222c578f..cf895a44aa0b2a175bc70056ce0bf1c66cb8192f:/src/services/common-service/common-resource-service.ts diff --git a/src/services/common-service/common-resource-service.ts b/src/services/common-service/common-resource-service.ts index 66e694a0..d9be8dae 100644 --- a/src/services/common-service/common-resource-service.ts +++ b/src/services/common-service/common-resource-service.ts @@ -26,7 +26,7 @@ export class CommonResourceService extends CommonService ])); } - create(data?: Partial) { + create(data?: Partial, showErrors?: boolean) { let payload: any; if (data !== undefined) { this.readOnlyFields.forEach( field => delete data[field] ); @@ -34,23 +34,26 @@ export class CommonResourceService extends CommonService [this.resourceType.slice(0, -1)]: CommonService.mapKeys(snakeCase)(data), }; } - return super.create(payload); + return super.create(payload, showErrors); } - update(uuid: string, data: Partial) { + update(uuid: string, data: Partial, showErrors?: boolean, 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); + return super.update(uuid, payload, showErrors); } } export const getCommonResourceServiceError = (errorResponse: any) => { - if ('errors' in errorResponse && 'errorToken' in errorResponse) { + if ('errors' in errorResponse) { const error = errorResponse.errors.join(''); switch (true) { case /UniqueViolation/.test(error):