X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/eeb82d50816250cc6287928e6d958affa73880ee..7adbd161925c71840bf4ddb799b87f1734e5af7e:/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 87272d424e..f6521ce51d 100644 --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@ -33,24 +33,29 @@ interface GroupsResponse { } export default class ProjectService { - public getProjectList = (parentUuid?: string) => (dispatch: Dispatch) => { + public getProjectList = (parentUuid?: string) => (dispatch: Dispatch): Promise => { dispatch(actions.PROJECTS_REQUEST()); - - const ub = new UrlBuilder('/groups'); - const fb = new FilterBuilder(); - fb.addEqual(FilterField.UUID, parentUuid); - const url = ub.addParam('filter', fb.get()).get(); - - serverApi.get(url).then(groups => { - const projects = groups.data.items.map(g => ({ - name: g.name, - createdAt: g.created_at, - modifiedAt: g.modified_at, - href: g.href, - uuid: g.uuid, - ownerUuid: g.owner_uuid - } as Project)); - dispatch(actions.PROJECTS_SUCCESS(projects)); - }); - }; + if (parentUuid) { + const fb = new FilterBuilder(); + fb.addLike(FilterField.OWNER_UUID, parentUuid); + return serverApi.get('/groups', { params: { + filters: fb.get() + }}).then(groups => { + const projects = groups.data.items.map(g => ({ + name: g.name, + createdAt: g.created_at, + modifiedAt: g.modified_at, + href: g.href, + uuid: g.uuid, + ownerUuid: g.owner_uuid, + kind: g.kind + } as Project)); + dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid})); + return projects; + }); + } else { + dispatch(actions.PROJECTS_SUCCESS({projects: [], parentItemId: parentUuid})); + return Promise.resolve([]); + } + } }