Forked from
KSZK / DevTeam / kszkepzes / old / kszkepzes-frontend
321 commits behind the upstream repository.
-
Chif Gergő authored
Create EditNewsForm. Add actions to handle edit events. Create reducer to swap the new and the old data.
Chif Gergő authoredCreate EditNewsForm. Add actions to handle edit events. Create reducer to swap the new and the old data.
To find the state of this project's repository at the time of any of these versions, check out the tags.
news.js 2.11 KiB
import { axios } from './auth';
import { GET_NEWS, WRITE_NEWS, ADD_NEWS, DELETE_NEWS,
CLEAR_WRITE, SELECT_NEWS, EDIT_NEWS } from './types';
export const getNews = () => (
async (dispatch) => {
try {
const response = await axios.get('/api/v1/news');
dispatch({
type: GET_NEWS,
payload: response.data,
});
} catch (e) {
console.log(e);
}
}
);
export const postNews = ({ title, author, text }) => (
async (dispatch) => {
try {
const response = await axios.post('/api/v1/news/', {
author,
title,
text,
});
if (response.data.id) {
alert('Sikeres mentés!');
dispatch({
type: ADD_NEWS,
payload: response.data,
});
} else {
alert('Mentés nem sikerült!');
}
} catch (e) {
console.log(e);
}
}
);
export const editNews = ({ id, title, editedBy, text }) => (
async (dispatch) => {
try {
const response = await axios.patch(`/api/v1/news/${id}/`, {
author: editedBy,
title,
text,
});
if (response.data.id) {
alert('Sikeres mentés!');
dispatch({
type: EDIT_NEWS,
payload: response.data,
});
} else {
alert('Mentés nem sikerült!');
}
} catch (e) {
console.log(e);
}
}
);
export const deleteNews = news => (
async (dispatch) => {
try {
const response = await axios.delete(`/api/v1/news/${news.id}/`);
if (!response.data.id) {
alert('Sikeres törlés!');
dispatch({
type: DELETE_NEWS,
payload: news,
});
} else {
alert('A törlés nem sikerült!');
}
} catch (e) {
console.log(e);
}
});
export const writeNews = ({ target: { name, value } }) => (
(dispatch) => {
dispatch({ type: WRITE_NEWS, payload: value, target: name });
}
);
export const clearWrite = () => (
(dispatch) => {
dispatch({ type: CLEAR_WRITE });
}
);
export const setSelectedNews = item => (
(dispatch) => {
dispatch({ type: SELECT_NEWS, payload: item });
}
);