93 lines
1.8 KiB
JavaScript
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,
|
|
};
|
|
}
|
|
}
|