25 lines
838 B
TypeScript
25 lines
838 B
TypeScript
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 });
|
|
} |