X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/7ba0401cff3906814ba976ea36adab9b3d5c3922..c90e813adcec89899d9db95843295a84fb058c3e:/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 e1e490bb..bc340818 100644 --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@ -4,57 +4,47 @@ 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"; +import { ArvadosResource } from "../response"; + +interface GroupResource extends ArvadosResource { + name: string; + group_class: string; + description: string; + writable_by: string[]; + delete_at: string; + trash_at: string; + is_trashed: boolean; +} interface GroupsResponse { offset: number; limit: number; - items: Array<{ - href: string; - kind: string; - etag: string; - uuid: string; - owner_uuid: string; - created_at: string; - modified_by_client_uuid: string; - modified_by_user_uuid: string; - modified_at: string; - name: string; - group_class: string; - description: string; - writable_by: string[]; - delete_at: string; - trash_at: string; - is_trashed: boolean; - }>; + items: GroupResource[]; } export default class ProjectService { - public getProjectList = (parentUuid?: string) => (dispatch: Dispatch): Promise => { - dispatch(actions.PROJECTS_REQUEST()); + public getProjectList = (parentUuid?: string): Promise => { 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 => ({ + }}).then(resp => { + const projects = resp.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 + 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([]); } - }; + } }