gengitkan/client/src/store/sagas/boards.ts

47 lines
1.0 KiB
TypeScript
Raw Normal View History

2019-12-01 22:12:13 +01:00
import { put, call } from 'redux-saga/effects';
2020-04-30 13:02:56 +02:00
import {
FETCH_BOARDS_SUCCESS, SAVE_BOARD_SUCCESS,
SAVE_BOARD_FAILURE, FETCH_BOARDS_FAILURE,
DELETE_BOARD_FAILURE, DELETE_BOARD_SUCCESS
} from '../actions/boards';
2019-12-01 22:12:13 +01:00
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 });
}
2020-04-30 13:02:56 +02:00
export function* saveBoardSaga(action: any) {
2019-12-01 22:12:13 +01:00
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 });
}
2019-12-13 13:28:59 +01:00
2020-04-30 13:02:56 +02:00
export function* deleteBoardSaga(action: any) {
2019-12-13 13:28:59 +01:00
let { id } = action;
try {
2020-04-30 13:02:56 +02:00
yield call(api.deleteBoard, id)
2019-12-13 13:28:59 +01:00
} catch(error) {
yield put({ type: DELETE_BOARD_FAILURE, error });
return
}
yield put({ type: DELETE_BOARD_SUCCESS, id });
}