import { put, call } from 'redux-saga/effects'; import { FETCH_BOARDS_SUCCESS, SAVE_BOARD_SUCCESS, SAVE_BOARD_FAILURE, FETCH_BOARDS_FAILURE, DELETE_BOARD_FAILURE, DELETE_BOARD_SUCCESS } from '../actions/boards'; import { api } from '../../util/api'; export function* fetchBoardsSaga() { let boards; try { boards = yield call(api.fetchBoards) } catch(error) { yield put({ type: FETCH_BOARDS_FAILURE, error }); return } yield put({ type: FETCH_BOARDS_SUCCESS, boards }); } export function* saveBoardSaga(action: any) { let { board } = action; try { board = yield call(api.saveBoard, board) } catch(error) { yield put({ type: SAVE_BOARD_FAILURE, error }); return } yield put({ type: SAVE_BOARD_SUCCESS, board }); } export function* deleteBoardSaga(action: any) { let { id } = action; try { yield call(api.deleteBoard, id) } catch(error) { yield put({ type: DELETE_BOARD_FAILURE, error }); return } yield put({ type: DELETE_BOARD_SUCCESS, id }); }