18965: Fix storing targetUrl for non-password login
[arvados.git] / src / services / common-service / common-resource-service.ts
index f2048c6bf7a3cf904fd2dcfec158846adf49364d..c6306779a9ee8cef4bb6eff287c485462f5e898a 100644 (file)
@@ -4,7 +4,7 @@
 
 import { AxiosInstance } from "axios";
 import { snakeCase } from "lodash";
-import { Resource } from "src/models/resource";
+import { Resource } from "models/resource";
 import { ApiActions } from "services/api/api-actions";
 import { CommonService } from "services/common-service/common-service";
 
@@ -37,13 +37,16 @@ export class CommonResourceService<T extends Resource> extends CommonService<T>
         return super.create(payload);
     }
 
-    update(uuid: string, data: Partial<T>) {
+    update(uuid: string, data: Partial<T>, 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);
     }