1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 05:09:43 +02:00
planka/client/src/sagas/app/requests/project.js

91 lines
1.9 KiB
JavaScript
Raw Normal View History

2019-08-31 04:07:25 +05:00
import { call, put } from 'redux-saga/effects';
import request from './request';
import {
createProjectFailed,
createProjectRequested,
createProjectSucceeded,
deleteProjectFailed,
deleteProjectRequested,
deleteProjectSucceeded,
updateProjectFailed,
updateProjectRequested,
updateProjectSucceeded,
} from '../../../actions';
import api from '../../../api';
export function* createProjectRequest(data) {
yield put(createProjectRequested(data));
try {
const {
item,
included: { users, projectMemberships, boards },
} = yield call(request, api.createProject, data);
const action = createProjectSucceeded(item, users, projectMemberships, boards);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = createProjectFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* updateProjectRequest(id, data) {
yield put(updateProjectRequested(id, data));
try {
const { item } = yield call(request, api.updateProject, id, data);
const action = updateProjectSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = updateProjectFailed(error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}
export function* deleteProjectRequest(id) {
yield put(deleteProjectRequested(id));
try {
const { item } = yield call(request, api.deleteProject, id);
const action = deleteProjectSucceeded(item);
yield put(action);
return {
success: true,
payload: action.payload,
};
} catch (error) {
const action = deleteProjectFailed(id, error);
yield put(action);
return {
success: false,
payload: action.payload,
};
}
}