X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/25aa8a7c81609525d300f38bc5b7d2344c4e1cdf..c27efd822acfd3bd93fc3e2e3e24a24146811eb7:/src/services/project-service/project-service.ts diff --git a/src/services/project-service/project-service.ts b/src/services/project-service/project-service.ts index e916f3c0..d6003471 100644 --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@ -5,9 +5,10 @@ import { GroupsService } from "../groups-service/groups-service"; import { ProjectResource } from "~/models/project"; import { GroupClass } from "~/models/group"; -import { ListArguments } from "~/common/api/common-resource-service"; -import { FilterBuilder, joinFilters } from "~/common/api/filter-builder"; - +import { ListArguments } from "~/services/common-service/common-resource-service"; +import { FilterBuilder, joinFilters } from "~/services/api/filter-builder"; +import { TrashableResourceService } from '~/services/common-service/trashable-resource-service'; +import { snakeCase } from 'lodash'; export class ProjectService extends GroupsService { create(data: Partial) { @@ -15,6 +16,29 @@ export class ProjectService extends GroupsService { return super.create(projectData); } + update(uuid: string, data: Partial) { + if (uuid && data && data.properties) { + const { properties } = data; + const mappedData = { + ...TrashableResourceService.mapKeys(snakeCase)(data), + properties, + }; + return TrashableResourceService + .defaultResponse( + this.serverApi + .put(this.resourceType + uuid, mappedData), + this.actions, + false + ); + } + return TrashableResourceService + .defaultResponse( + this.serverApi + .put(this.resourceType + uuid, data && TrashableResourceService.mapKeys(snakeCase)(data)), + this.actions + ); + } + list(args: ListArguments = {}) { return super.list({ ...args,