From 61fda9b79aa428a8d6656b7adcc95ea84035dbb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Chif=20Gerg=C5=91?= <chifgeri97@gmail.com>
Date: Thu, 7 Feb 2019 23:38:24 +0100
Subject: [PATCH] Add actions to create message, and dismiss. Dispatch message
 actions, when post to server and get the response

---
 src/actions/auth.js       | 10 +++++-----
 src/actions/messages.js   | 11 +++++++++++
 src/actions/news.js       | 21 +++++++++++----------
 src/actions/notes.js      |  9 +++++----
 src/actions/statistics.js | 23 ++++++++++++++---------
 src/actions/types.js      |  3 +++
 6 files changed, 49 insertions(+), 28 deletions(-)
 create mode 100644 src/actions/messages.js

diff --git a/src/actions/auth.js b/src/actions/auth.js
index 44a2992..5b2a5b6 100644
--- a/src/actions/auth.js
+++ b/src/actions/auth.js
@@ -1,6 +1,6 @@
 import axios from './session';
 import { GET_USERDATA, PROFILE_CHANGE, GROUP_CHANGE } from './types';
-
+import { showMessage } from './messages';
 
 export const getUserData = () => (
   async (dispatch) => {
@@ -59,7 +59,7 @@ export const groupChange = groups => (
 export const submitRegistration = ({
   nick, groups, signed, motivationAbout, motivationProfession, motivationExercise, id,
 }) => (
-  async () => {
+  async (dispatch) => {
     try {
       const response = await axios.patch(`/api/v1/profiles/${id}/`, {
         nick,
@@ -70,12 +70,12 @@ export const submitRegistration = ({
         motivation_exercise: motivationExercise,
       });
       if (response.data.id === id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('Sikeres mentĂŠs!', 'success'));
       } else {
-        alert('MentĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A mentĂŠs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('A mentĂŠs nem sikerĂźlt!', 'error'));
     }
   }
 );
diff --git a/src/actions/messages.js b/src/actions/messages.js
new file mode 100644
index 0000000..01dd9c5
--- /dev/null
+++ b/src/actions/messages.js
@@ -0,0 +1,11 @@
+import { SHOW_MESSAGE, DISMISS_MESSAGE } from '../actions/types';
+
+export const dismissMessage = () => (
+  (dispatch) => {
+    dispatch({ type: DISMISS_MESSAGE });
+  }
+);
+
+export const showMessage = (text, messageType) => (
+  { type: SHOW_MESSAGE, messageType, text }
+);
diff --git a/src/actions/news.js b/src/actions/news.js
index 0a953af..44fa2fd 100644
--- a/src/actions/news.js
+++ b/src/actions/news.js
@@ -1,6 +1,7 @@
 import axios from './session';
 import { GET_NEWS, WRITE_NEWS, ADD_NEWS, DELETE_NEWS,
-  CLEAR_WRITE, SELECT_NEWS, EDIT_NEWS } from './types';
+  CLEAR_WRITE, SELECT_NEWS, EDIT_NEWS, SHOW_MESSAGE } from './types';
+import { showMessage } from './messages';
 
 export const getNews = () => (
   async (dispatch) => {
@@ -25,16 +26,16 @@ export const postNews = ({ title, author, text }) => (
         text,
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
         dispatch({
           type: ADD_NEWS,
           payload: response.data,
         });
+        dispatch(showMessage('HĂ­r hozzĂĄdva!', 'success'));
       } else {
-        alert('MentĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('Nem sikerĂźlt a hĂ­rt hozĂĄadni!', 'error'));
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('Nem sikerĂźlt a hĂ­rt hozĂĄadni!', 'error'));
     }
   }
 );
@@ -48,17 +49,17 @@ export const editNews = ({ id, title, editedBy, text }) => (
         text,
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('HĂ­r mĂłdosĂ­tva!', 'success'));
         dispatch({
           type: EDIT_NEWS,
           payload: response.data,
 
         });
       } else {
-        alert('MentĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('Nem sikerĂźlt a mĂłdosĂ­tĂĄs', 'error'));
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('Nem sikerĂźlt a mĂłdosĂ­tĂĄs', 'error'));
     }
   }
 );
@@ -68,16 +69,16 @@ export const deleteNews = news => (
     try {
       const response = await axios.delete(`/api/v1/news/${news.id}/`);
       if (!response.data.id) {
-        alert('Sikeres tĂśrlĂŠs!');
+        dispatch(showMessage('Sikeres tĂśrlĂŠs!', 'success'));
         dispatch({
           type: DELETE_NEWS,
           payload: news,
         });
       } else {
-        alert('A tĂśrlĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A tĂśrlĂŠs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('A tĂśrlĂŠs nem sikerĂźlt!', 'error'));
     }
   });
 
diff --git a/src/actions/notes.js b/src/actions/notes.js
index 09e353d..e51673f 100644
--- a/src/actions/notes.js
+++ b/src/actions/notes.js
@@ -8,6 +8,7 @@ import {
   GET_NOTES_BY_PROFILE,
   ADD_PROFILE_NOTE,
 } from './types';
+import { showMessage } from './messages';
 
 export const getNotesByEvent = id => (
   async (dispatch) => {
@@ -50,7 +51,7 @@ export const postNote = ({ eventid, userid, note }) => (
         note,
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('A megjegyzĂŠs hozzĂĄadva!', 'success'));
         if (eventid) {
           dispatch({
             type: ADD_EVENT_NOTE,
@@ -65,7 +66,7 @@ export const postNote = ({ eventid, userid, note }) => (
         }
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('A hozzĂĄadĂĄs nem sikerĂźlt!', 'error'));
     }
   });
 
@@ -80,13 +81,13 @@ export const deleteNote = note => (
     try {
       const response = await axios.delete(`/api/v1/notes/${note.id}/`);
       if (!response.data.id) {
-        alert('Sikeres tĂśrlĂŠs!');
+        dispatch(showMessage('Sikeres tĂśrlĂŠs!', 'success'));
         dispatch({
           type: DELETE_NOTE,
           payload: note,
         });
       } else {
-        alert('A tĂśrlĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A tĂśrlĂŠs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
       console.log(e);
diff --git a/src/actions/statistics.js b/src/actions/statistics.js
index 1f92b1e..7f53e13 100644
--- a/src/actions/statistics.js
+++ b/src/actions/statistics.js
@@ -16,6 +16,7 @@ import {
   WRITE_EDITED_EVENT,
   SELECT_EVENT_FOR_EDIT,
 } from './types';
+import { showMessage } from './messages';
 
 export const getStaffEvents = () => (
   async (dispatch) => {
@@ -86,17 +87,17 @@ export const visitorChange = ({ id, value }) => {
 };
 
 export const submitVisitors = ({ id, visitors, absent }) => (
-  async () => {
+  async (dispatch) => {
     try {
       const response = await axios.patch(`/api/v1/staff_events/${id}/`, {
         visitors,
         absent,
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('Sikeres vĂĄltoztatĂĄs!', 'success'));
       }
     } catch (e) {
-      console.log(e);
+      dispatch(showMessage('Nem sikerĂźlt a vĂĄltoztatĂĄs!', 'error'));
     }
   }
 );
@@ -128,14 +129,14 @@ export const editEvent = ({ id, name, description, date }) => (
         date,
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('Az alkalom mĂłdosĂ­tva!', 'success'));
         dispatch({
           type: EDIT_EVENT,
           payload: response.data,
 
         });
       } else {
-        alert('MentĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A mĂłdosĂ­tĂĄs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
       console.log(e);
@@ -153,13 +154,13 @@ export const addEvent = ({ name, date, description }) => (
         absent: [],
       });
       if (response.data.id) {
-        alert('Sikeres mentĂŠs!');
+        dispatch(showMessage('Az alkalom hozzĂĄadva!', 'success'));
         dispatch({
           type: ADD_EVENT,
           payload: response.data,
         });
       } else {
-        alert('MentĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A hozzĂĄadĂĄs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
       console.log(e);
@@ -172,13 +173,13 @@ export const deleteEvent = event => (
     try {
       const response = await axios.delete(`/api/v1/staff_events/${event.id}/`);
       if (!response.data.id) {
-        alert('Sikeres tĂśrlĂŠs!');
+      dispatch(showMessage('Az alkalom tĂśrĂślve!', 'success'));
         dispatch({
           type: DELETE_EVENT,
           payload: event,
         });
       } else {
-        alert('A tĂśrlĂŠs nem sikerĂźlt!');
+        dispatch(showMessage('A tĂśrlĂŠs nem sikerĂźlt!', 'error'));
       }
     } catch (e) {
       console.log(e);
@@ -206,11 +207,15 @@ export const setStatus = (id, status) => (
         role: status,
       });
       if (response.data.id) {
+        dispatch(showMessage('StĂĄtusz megvĂĄltoztatva!', 'success'));
         dispatch({
           type: SET_STATUS,
           payload: response.data,
         });
       }
+      else {
+        dispatch(showMessage('A vĂĄltoztatĂĄs nem sikerĂźlt!', 'error'));
+      }
     } catch (e) {
       console.log(e);
     }
diff --git a/src/actions/types.js b/src/actions/types.js
index 8d2c125..020b4b4 100644
--- a/src/actions/types.js
+++ b/src/actions/types.js
@@ -53,3 +53,6 @@ export const GET_NOTES_BY_PROFILE = 'get_notes_by_profile';
 export const GET_PROFILES = 'get_profiles';
 export const SET_STATUS = 'set_status';
 export const GET_SELECTED_PROFILE = 'get_selected_profile';
+
+export const SHOW_MESSAGE = 'show_message';
+export const DISMISS_MESSAGE = 'dismiss_message';
-- 
GitLab