projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '18484-collection-manifest-fix' into main. Closes #18484.
[arvados-workbench2.git]
/
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 bc24f22796b21001bce09b358e1efe6c657d6248..c6306779a9ee8cef4bb6eff287c485462f5e898a 100644
(file)
--- a/
src/services/common-service/common-resource-service.ts
+++ b/
src/services/common-service/common-resource-service.ts
@@
-3,9
+3,10
@@
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
// SPDX-License-Identifier: AGPL-3.0
import { AxiosInstance } from "axios";
-import { Resource } from "src/models/resource";
-import { ApiActions } from "~/services/api/api-actions";
-import { CommonService } from "~/services/common-service/common-service";
+import { snakeCase } from "lodash";
+import { Resource } from "models/resource";
+import { ApiActions } from "services/api/api-actions";
+import { CommonService } from "services/common-service/common-service";
export enum CommonResourceServiceError {
UNIQUE_NAME_VIOLATION = 'UniqueNameViolation',
export enum CommonResourceServiceError {
UNIQUE_NAME_VIOLATION = 'UniqueNameViolation',
@@
-26,17
+27,28
@@
export class CommonResourceService<T extends Resource> extends CommonService<T>
}
create(data?: Partial<T>) {
}
create(data?: Partial<T>) {
+ let payload: any;
if (data !== undefined) {
this.readOnlyFields.forEach( field => delete data[field] );
if (data !== undefined) {
this.readOnlyFields.forEach( field => delete data[field] );
+ payload = {
+ [this.resourceType.slice(0, -1)]: CommonService.mapKeys(snakeCase)(data),
+ };
}
}
- return super.create(
data
);
+ 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] );
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,
data
);
+ return super.update(uuid,
payload
);
}
}
}
}