X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/3ad7e33a2d50e9ed2298624ea5cac7cb5cd21a6f..fbd2012fa56f6de44dfc4008d70e5a21cfcaf459:/src/services/project-service/project-service.ts?ds=sidebyside diff --git a/src/services/project-service/project-service.ts b/src/services/project-service/project-service.ts index 9350dabd..119cfece 100644 --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@ -34,24 +34,28 @@ interface GroupsResponse { export default class ProjectService { 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, - modifiedAt: g.modified_at, - href: g.href, - uuid: g.uuid, - ownerUuid: g.owner_uuid - } as Project)); - dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid})); - return projects; - }); - }; + dispatch(actions.PROJECTS_REQUEST(parentUuid)); + 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([]); + } + } }