import { getClient } from "../../util/daddy"; import { Config } from "../../config"; import { all, takeLatest, put } from "redux-saga/effects"; import { FETCH_WORKGROUPS_SUCCESS, FETCH_WORKGROUPS_FAILURE, FETCH_WORKGROUPS_REQUEST } from "../actions/workgroups"; import { Workgroup } from "../../types/workgroup"; export function* workgroupsRootSaga() { yield all([ takeLatest(FETCH_WORKGROUPS_REQUEST, fetchWorkgroupsSaga), ]); } export function* fetchWorkgroupsSaga() { const client = getClient(Config.graphQLEndpoint, Config.subscriptionEndpoint); let workgroups: [Workgroup]; try { workgroups = yield client.fetchWorkgroups().then(result => result.workgroups); } catch(err) { yield put({ type: FETCH_WORKGROUPS_FAILURE, err }); return; } yield put({type: FETCH_WORKGROUPS_SUCCESS, workgroups }); }