X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/158a4936f754ad78004e1bbcbb5af053a6a4073a..7a81b9d2c37ceb5add5df8fe9fe48b409d971e37:/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 e916f3c0a4..5c686aae67 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-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,