export const SHOW_ALL_DEGREECOURSES = 'SHOW_ALL_DEGREECOURSES'; export const SHOW_ALL_DEGREECOURSES_ERROR = 'SHOW_ALL_DEGREECOURSES_ERROR'; export const CREATE_NEW_DEGREECOURSE_SUCCESS = 'CREATE_NEW_DEGREECOURSE_SUCCESS'; export const CREATE_NEW_DEGREECOURSE_ERROR = 'CREATE_NEW_DEGREECOURSE_ERROR'; export const EDIT_DEGREECOURSE_SUCCESS = 'EDIT_DEGREECOURSE_SUCCESS'; export const EDIT_DEGREECOURSE_ERROR = 'EDIT_DEGREECOURSE_ERROR'; export const DELETE_DEGREECOURSE_SUCCESS = 'DELETE_DEGREECOURSE_SUCCESS'; export const DELETE_DEGREECOURSE_ERROR = 'DELETE_DEGREECOURSE_ERROR' export const SHOW_DELETE_DEGREECOURSE_MODAL = 'SHOW_DELETE_DEGREECOURSE_MODAL' export const HIDE_DELETE_DEGREECOURSE_MODAL = 'HIDE_DELETE_DEGREECOURSE_MODAL' export const PRESS_EDIT_BUTTON = 'PRESS_EDIT_BUTTON'; const URL = process.env.REACT_APP_SERVER export function getShowDeleteDegreeCourseModalAction(deleteModalData) { console.log(deleteModalData) return { type: SHOW_DELETE_DEGREECOURSE_MODAL, deleteDegreeCourseModalData: deleteModalData } } export function getHideDeleteDegreeCourseModalAction() { return { type: HIDE_DELETE_DEGREECOURSE_MODAL } } export function getCreateNewDegreeCourseSuccessAction(degreeCourseData) { console.log("GetCreateNewDegreeCourseSuccessAction") return { type: CREATE_NEW_DEGREECOURSE_SUCCESS, newDegreeCourseData: degreeCourseData } } export function getCreateNewDegreeCourseErrorAction(error) { console.log("getCreateNewDegreeCourseErrorAction") return { type: CREATE_NEW_DEGREECOURSE_ERROR, error: error } } export function createNewDegreeCourse(degreeCourseData, token) { console.log("create new degreeCourse") console.log(degreeCourseData) const requestOptions = { method: 'POST', headers: { 'Authorization': token, 'Content-Type': 'application/json' }, body: JSON.stringify(degreeCourseData) } return fetch(URL + '/degreeCourses', requestOptions) .then(response => { return response.json().then(body => { if (response.status === 201) { console.log(body) return body } }) }) } export function passNewDegreeCourse(degreeCourseData, token) { console.log("passing new degreeCourse") return dispatch => { dispatch(getCreateNewDegreeCourseSuccessAction()); createNewDegreeCourse(degreeCourseData, token) .then(newDegreeCourse => { console.log(newDegreeCourse) const action = getCreateNewDegreeCourseSuccessAction(newDegreeCourse) dispatch(action); getAllDegreeCourses(token) .then(degreeCourses => { const action = getAllDegreeCoursesAction(degreeCourses) dispatch(action) }) }, error => { dispatch(getCreateNewDegreeCourseErrorAction(error)); } ) .catch(error => { dispatch(getCreateNewDegreeCourseErrorAction(error)) }) } } export function getAllDegreeCoursesAction(courses) { console.log("GetAllCourses Action") return { type: SHOW_ALL_DEGREECOURSES, degreeCourseList: courses } } export function getAllDegreeCoursesErrorAction(error) { console.log("Error Action") return { type: SHOW_ALL_DEGREECOURSES_ERROR, error: error } } export function getAllDegreeCourses(token) { console.log("get all courses") console.log(token) const requestOptions = { method: 'GET', headers: { 'Authorization': token } }; return fetch(URL + '/degreeCourses', requestOptions) .then(response => { return response.json().then(body => { if (response.status === 200) { console.log(body) return body } }) }) } export function displayDegreeCourses(token) { console.log("displaying degreeCourse") return dispatch => { dispatch(getAllDegreeCoursesAction()); getAllDegreeCourses(token) .then(courses => { console.log(courses) const action = getAllDegreeCoursesAction(courses) dispatch(action); }, error => { dispatch(getAllDegreeCoursesErrorAction(error)); } ) .catch(error => { dispatch(getAllDegreeCoursesErrorAction(error)) }) } } export function getEditDegreeCourseSuccessAction() { console.log("getEditDegreeCourseSuccessAction") return { type: EDIT_DEGREECOURSE_SUCCESS } } export function getEditDegreeCourseErrorAction() { console.log("getEditDegreeCourseErrorAction") return { type: EDIT_DEGREECOURSE_ERROR } } export function updateDegreeCourse(updateData, degreeCourseID, token) { console.log("updating degreeCourse with id: " + degreeCourseID) console.log(degreeCourseID) console.log(updateData) const requestOptions = { method: 'PUT', headers: { 'Authorization': token, 'Content-Type': 'application/json' }, body: JSON.stringify(updateData) } return fetch(URL + `/degreeCourses/${degreeCourseID}`, requestOptions) .then(response => { console.log(response) return response.json().then(body => { if (response.status === 200) { console.log(body) return body } }) }) } export function editDegreeCourseWithID(updateData, degreeCourseID, token) { console.log("editing degreeCourse") return dispatch => { dispatch(getEditDegreeCourseSuccessAction()); updateDegreeCourse(updateData, degreeCourseID, token) .then(degreeCourse => { console.log(degreeCourse) const action = getEditDegreeCourseSuccessAction(degreeCourse) dispatch(action); getAllDegreeCourses(token) .then(degreeCourses => { const action = getAllDegreeCoursesAction(degreeCourses) dispatch(action) }) }, error => { dispatch(getEditDegreeCourseErrorAction(error)); } ) .catch(error => { dispatch(getEditDegreeCourseErrorAction(error)) }) } } export function getDeleteDegreeCourseSuccessAction() { return { type: DELETE_DEGREECOURSE_SUCCESS } } export function getDeleteDegreeCourseErrorAction(error) { return { type: DELETE_DEGREECOURSE_ERROR, error: error } } export function deleteDegreeCourse(degreeCourseID, token) { console.log("delete degreeCourse") console.log(degreeCourseID) const requestOptions = { method: 'DELETE', headers: { 'Authorization': token } } return fetch(URL + '/degreeCourses/' + degreeCourseID, requestOptions) .then(response => { console.log(response) if (response.status === 204) { return response.status } }) } export function deleteDegreeCourseWithID(degreeCourseID, token) { console.log("deleting degreeCourse") return dispatch => { dispatch(getDeleteDegreeCourseSuccessAction(degreeCourseID)); deleteDegreeCourse(degreeCourseID, token) .then(deleteDegreeCourse => { console.log(deleteDegreeCourse) const action = getDeleteDegreeCourseSuccessAction(deleteDegreeCourse) dispatch(action); getAllDegreeCourses(token) .then(degreeCourses => { const action = getAllDegreeCoursesAction(degreeCourses) dispatch(action) }) }, error => { console.log(error) dispatch(getDeleteDegreeCourseErrorAction(error)); } ) .catch(error => { dispatch(getDeleteDegreeCourseErrorAction(error)) }) } }