X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3664cf869c1bdb38e62ffd35d16dee0c12af7c59..040d25dbcc9ec46c4c21c945ccf02dcf1bf44c26:/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 f35ca9cd41..939799d2dd 100644 --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@ -2,10 +2,12 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { serverApi } from "../../common/server-api"; +import { serverApi } from "../../common/api/server-api"; import { Dispatch } from "redux"; import actions from "../../store/project/project-action"; import { Project } from "../../models/project"; +import UrlBuilder from "../../common/api/url-builder"; +import FilterBuilder, { FilterField } from "../../common/api/filter-builder"; interface GroupsResponse { offset: number; @@ -31,9 +33,15 @@ interface GroupsResponse { } export default class ProjectService { - public getTopProjectList = () => (dispatch: Dispatch) => { - dispatch(actions.TOP_PROJECTS_REQUEST()); - serverApi.get('/groups').then(groups => { + public getProjectList = (parentUuid?: string) => (dispatch: Dispatch): Promise => { + dispatch(actions.PROJECTS_REQUEST()); + + const ub = new UrlBuilder('/groups'); + const fb = new FilterBuilder(); + fb.addEqual(FilterField.OWNER_UUID, parentUuid); + const url = ub.addParam('filters', fb.get()).get(); + + return serverApi.get(url).then(groups => { const projects = groups.data.items.map(g => ({ name: g.name, createdAt: g.created_at, @@ -42,7 +50,8 @@ export default class ProjectService { uuid: g.uuid, ownerUuid: g.owner_uuid } as Project)); - dispatch(actions.TOP_PROJECTS_SUCCESS(projects)); + dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid})); + return projects; }); } }