Files
old-new-wiaas/frontend/src/actions/orderProjects/orderProjectsActions.js

101 lines
3.0 KiB
JavaScript
Raw Normal View History

2018-06-14 16:49:28 +02:00
import {API_SERVER} from '../../config';
import HtmlClient from '../../helpers/HtmlClient';
import {
REQUEST_ORDER_PROJECTS,
RECEIVE_ORDER_PROJECTS,
REQUEST_ADD_PROJECT,
orderProjectsTexts
} from '../../constants/orderProjectsConstants';
import {updateMessages} from '../notification/notificationActions';
import {setDialogOpenFlag} from '../dialog/dialogActions';
const htmlClient = new HtmlClient();
const requestOrderProjects = () => ({
type: REQUEST_ORDER_PROJECTS,
isLoading: true
});
const recieveOrderProjects = (json) => ({
type: RECEIVE_ORDER_PROJECTS,
isLoading: false,
orderProjects: json
});
const generateOptions = (orderProjects) => {
orderProjects.forEach((orderProject) => {
orderProject.value = orderProject.idProject;
orderProject.label = orderProject.projectName;
});
return orderProjects;
}
export const getOrderProjects = () => {
return dispatch => {
dispatch(requestOrderProjects());
dispatch(recieveOrderProjects(generateOptions([
{
"idProject": 1,
"projectName": "Innovation Center",
"isAvailable": 1
},
{
"idProject": 2,
"projectName": "Demo01",
"isAvailable": 1
},
{
"idProject": 3,
"projectName": "Kontorsrådet",
"isAvailable": 1
},
{
"idProject": 4,
"projectName": "PerProj01",
"isAvailable": 1
}
])));
// return htmlClient.fetch({
// url: `${API_SERVER}/orderProjects/api/getOrderProjects`
// })
// .then(response => {
// if (response.data) {
// const orderProjects = generateOptions(response.data);
// dispatch(recieveOrderProjects(orderProjects));
// }
// })
// .catch(error => {
// htmlClient.onError(error, dispatch);
// });
2018-06-14 16:49:28 +02:00
}
}
const requestAddProject = () => ({
type: REQUEST_ADD_PROJECT,
isLoading: true
});
export const addProject = (projectData) => {
return dispatch => {
dispatch(requestAddProject());
return htmlClient.fetch({
url: `${API_SERVER}/orderProjects/api/addOrderProject`,
method: 'post',
data: {projectData: JSON.stringify(projectData)}
})
.then(response => {
if(response.data && response.data.messages){
dispatch(updateMessages(response.data.messages, orderProjectsTexts.messages));
if(response.data.messages[0].code === 'success'){
dispatch(getOrderProjects());
dispatch(setDialogOpenFlag(false));
}
}
})
.catch(error => {
htmlClient.onError(error, dispatch);
});
}
}