Initial commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import { call, put, select } from 'redux-saga/effects';
|
||||
|
||||
import { goToBoardService } from './router';
|
||||
import { createCardRequest, deleteCardRequest, updateCardRequest } from '../requests';
|
||||
import { maxIdSelector, nextCardPositionSelector, pathSelector } from '../../../selectors';
|
||||
import { createCard, deleteCard, updateCard } from '../../../actions';
|
||||
import { nextLocalId } from '../../../utils/local-id';
|
||||
import { Card } from '../../../models';
|
||||
|
||||
export function* createCardService(listId, data) {
|
||||
const nextData = {
|
||||
...data,
|
||||
position: yield select(nextCardPositionSelector, listId),
|
||||
};
|
||||
|
||||
const localId = nextLocalId(yield select(maxIdSelector, Card.modelName));
|
||||
|
||||
yield put(
|
||||
createCard({
|
||||
...nextData,
|
||||
listId,
|
||||
id: localId,
|
||||
}),
|
||||
);
|
||||
|
||||
yield call(createCardRequest, listId, localId, nextData);
|
||||
}
|
||||
|
||||
export function* updateCardService(id, data) {
|
||||
yield put(updateCard(id, data));
|
||||
yield call(updateCardRequest, id, data);
|
||||
}
|
||||
|
||||
export function* updateCurrentCardService(data) {
|
||||
const { cardId } = yield select(pathSelector);
|
||||
|
||||
yield call(updateCardService, cardId, data);
|
||||
}
|
||||
|
||||
export function* moveCardService(id, listId, index) {
|
||||
const position = yield select(nextCardPositionSelector, listId, index, id);
|
||||
|
||||
yield call(updateCardService, id, {
|
||||
listId,
|
||||
position,
|
||||
});
|
||||
}
|
||||
|
||||
export function* deleteCardService(id) {
|
||||
const { cardId, boardId } = yield select(pathSelector);
|
||||
|
||||
if (id === cardId) {
|
||||
yield call(goToBoardService, boardId);
|
||||
}
|
||||
|
||||
yield put(deleteCard(id));
|
||||
yield call(deleteCardRequest, id);
|
||||
}
|
||||
|
||||
export function* deleteCurrentCardService() {
|
||||
const { cardId } = yield select(pathSelector);
|
||||
|
||||
yield call(deleteCardService, cardId);
|
||||
}
|
||||
Reference in New Issue
Block a user