Files
planka-zh/client/src/sagas/app/requests/list.js
Maksim Eltyshev 5ffef61fe7 Initial commit
2019-08-31 04:07:25 +05:00

93 lines
1.8 KiB
JavaScript

import { call, put } from 'redux-saga/effects';
import request from './request';
import {
createListFailed,
createListRequested,
createListSucceeded,
deleteListFailed,
deleteListRequested,
deleteListSucceeded,
updateListFailed,
updateListRequested,
updateListSucceeded,
} from '../../../actions';
import api from '../../../api';
export function* createListRequest(boardId, localId, data) {
yield put(
createListRequested(localId, {
...data,
boardId,
}),
);
try {
const { item } = yield call(request, api.createList, boardId, data);
const action = createListSucceeded(localId, item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = createListFailed(localId, error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* updateListRequest(id, data) {
yield put(updateListRequested(id, data));
try {
const { item } = yield call(request, api.updateList, id, data);
const action = updateListSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = updateListFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* deleteListRequest(id) {
yield put(deleteListRequested(id));
try {
const { item } = yield call(request, api.deleteList, id);
const action = deleteListSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = deleteListFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}