1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59:44 +02:00
planka/client/src/sagas/app/services/label.js

93 lines
2.3 KiB
JavaScript
Raw Normal View History

2019-08-31 04:07:25 +05:00
import { call, put, select } from 'redux-saga/effects';
import {
createCardLabelRequest,
createLabelRequest,
deleteCardLabelRequest,
deleteLabelRequest,
updateLabelRequest,
} from '../requests';
import { pathSelector } from '../../../selectors';
2019-08-31 04:07:25 +05:00
import {
addLabelToBoardFilter,
addLabelToCard,
createLabel,
deleteLabel,
removeLabelFromBoardFilter,
removeLabelFromCard,
updateLabel,
} from '../../../actions';
import { createLocalId } from '../../../utils/local-id';
2019-08-31 04:07:25 +05:00
export function* createLabelService(boardId, data) {
const localId = yield call(createLocalId);
2019-08-31 04:07:25 +05:00
yield put(
createLabel({
...data,
boardId,
id: localId,
}),
);
yield call(createLabelRequest, boardId, localId, data);
}
export function* createLabelInCurrentBoardService(data) {
const { boardId } = yield select(pathSelector);
yield call(createLabelService, boardId, data);
}
export function* updateLabelService(id, data) {
yield put(updateLabel(id, data));
yield call(updateLabelRequest, id, data);
}
export function* deleteLabelService(id) {
yield put(deleteLabel(id));
yield call(deleteLabelRequest, id);
}
export function* addLabelToCardService(id, cardId) {
yield put(addLabelToCard(id, cardId));
yield call(createCardLabelRequest, cardId, id);
}
export function* addLabelToCurrentCardService(id) {
const { cardId } = yield select(pathSelector);
yield call(addLabelToCardService, id, cardId);
}
export function* removeLabelFromCardService(id, cardId) {
yield put(removeLabelFromCard(id, cardId));
yield call(deleteCardLabelRequest, cardId, id);
}
export function* removeLabelFromCurrentCardService(id) {
const { cardId } = yield select(pathSelector);
yield call(removeLabelFromCardService, id, cardId);
}
export function* addLabelToBoardFilterService(id, boardId) {
yield put(addLabelToBoardFilter(id, boardId));
}
export function* addLabelToFilterInCurrentBoardService(id) {
const { boardId } = yield select(pathSelector);
yield call(addLabelToBoardFilterService, id, boardId);
}
export function* removeLabelFromBoardFilterService(id, boardId) {
yield put(removeLabelFromBoardFilter(id, boardId));
}
export function* removeLabelFromFilterInCurrentBoardService(id) {
const { boardId } = yield select(pathSelector);
yield call(removeLabelFromBoardFilterService, id, boardId);
}