130 lines
2.5 KiB
JavaScript
130 lines
2.5 KiB
JavaScript
import { call, put } from 'redux-saga/effects';
|
|
|
|
import request from './request';
|
|
import {
|
|
createCardFailed,
|
|
createCardRequested,
|
|
createCardSucceeded,
|
|
deleteCardFailed,
|
|
deleteCardRequested,
|
|
deleteCardSucceeded,
|
|
fetchCardFailed,
|
|
fetchCardRequested,
|
|
fetchCardSucceeded,
|
|
updateCardFailed,
|
|
updateCardRequested,
|
|
updateCardSucceeded,
|
|
} from '../../../actions';
|
|
import api from '../../../api';
|
|
|
|
export function* createCardRequest(boardId, localId, data) {
|
|
yield put(
|
|
createCardRequested(localId, {
|
|
...data,
|
|
boardId,
|
|
}),
|
|
);
|
|
|
|
try {
|
|
const {
|
|
item,
|
|
included: { cardMemberships, cardLabels, tasks, attachments },
|
|
} = yield call(request, api.createCard, boardId, data);
|
|
|
|
const action = createCardSucceeded(
|
|
localId,
|
|
item,
|
|
cardMemberships,
|
|
cardLabels,
|
|
tasks,
|
|
attachments,
|
|
);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: true,
|
|
payload: action.payload,
|
|
};
|
|
} catch (error) {
|
|
const action = createCardFailed(localId, error);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: false,
|
|
payload: action.payload,
|
|
};
|
|
}
|
|
}
|
|
|
|
export function* fetchCardRequest(id) {
|
|
yield put(fetchCardRequested(id));
|
|
|
|
try {
|
|
const { item } = yield call(request, api.getCard, id);
|
|
|
|
const action = fetchCardSucceeded(item);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: true,
|
|
payload: action.payload,
|
|
};
|
|
} catch (error) {
|
|
const action = fetchCardFailed(id, error);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: false,
|
|
payload: action.payload,
|
|
};
|
|
}
|
|
}
|
|
|
|
export function* updateCardRequest(id, data) {
|
|
yield put(updateCardRequested(id, data));
|
|
|
|
try {
|
|
const { item } = yield call(request, api.updateCard, id, data);
|
|
|
|
const action = updateCardSucceeded(item);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: true,
|
|
payload: action.payload,
|
|
};
|
|
} catch (error) {
|
|
const action = updateCardFailed(error);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: false,
|
|
payload: action.payload,
|
|
};
|
|
}
|
|
}
|
|
|
|
export function* deleteCardRequest(id) {
|
|
yield put(deleteCardRequested(id));
|
|
|
|
try {
|
|
const { item } = yield call(request, api.deleteCard, id);
|
|
|
|
const action = deleteCardSucceeded(item);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: true,
|
|
payload: action.payload,
|
|
};
|
|
} catch (error) {
|
|
const action = deleteCardFailed(error);
|
|
yield put(action);
|
|
|
|
return {
|
|
success: false,
|
|
payload: action.payload,
|
|
};
|
|
}
|
|
}
|