Files
planka-zh/client/src/sagas/app/requests/task.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 {
createTaskFailed,
createTaskRequested,
createTaskSucceeded,
deleteTaskFailed,
deleteTaskRequested,
deleteTaskSucceeded,
updateTaskFailed,
updateTaskRequested,
updateTaskSucceeded,
} from '../../../actions';
import api from '../../../api';
export function* createTaskRequest(cardId, localId, data) {
yield put(
createTaskRequested(localId, {
...data,
cardId,
}),
);
try {
const { item } = yield call(request, api.createTask, cardId, data);
const action = createTaskSucceeded(localId, item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = createTaskFailed(localId, error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* updateTaskRequest(id, data) {
yield put(updateTaskRequested(id, data));
try {
const { item } = yield call(request, api.updateTask, id, data);
const action = updateTaskSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = updateTaskFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* deleteTaskRequest(id) {
yield put(deleteTaskRequested(id));
try {
const { item } = yield call(request, api.deleteTask, id);
const action = deleteTaskSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = deleteTaskFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}