daddy/client/src/store/sagas/workgroups.ts

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 });
}