Skip to content
Snippets Groups Projects
statistics.js 3.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • Rafael László's avatar
    Rafael László committed
      ABSENT_CHANGE,
    
    Chif Gergő's avatar
    Chif Gergő committed
      ADD_EVENT,
    
    Rafael László's avatar
    Rafael László committed
      CHANGE_NO,
    
      DELETE_EVENT,
    
    Rafael László's avatar
    Rafael László committed
      GET_EVENTS,
      GET_EVENT_BY_ID,
    
      GET_SELECTED_PROFILE,
    
    Rafael László's avatar
    Rafael László committed
      GET_TRAINEES,
    
    Rafael László's avatar
    Rafael László committed
      VISITOR_CHANGE,
      WRITE_EVENT,
    
    Rafael László's avatar
    Rafael László committed
    import axios from './session';
    
    export const getStaffEvents = () => async (dispatch) => {
      try {
        const response = await axios.get('/api/v1/staff_events/');
        dispatch({
          type: GET_EVENTS,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const getStudentEvents = () => async (dispatch) => {
      try {
        const response = await axios.get('/api/v1/student_events/');
        dispatch({
          type: GET_EVENTS,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const getEventById = (id) => async (dispatch) => {
      try {
        const response = await axios.get(`/api/v1/staff_events/${id}`);
        dispatch({
          type: GET_EVENT_BY_ID,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const getTrainees = () => async (dispatch) => {
      try {
        const response = await axios.get('/api/v1/profiles/');
        dispatch({
          type: GET_TRAINEES,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    export const visitorChange = ({ id, value }) => {
    
    Rafael László's avatar
    Rafael László committed
      switch (value) {
    
    Rafael László's avatar
    Rafael László committed
          return (dispatch) => dispatch({ type: VISITOR_CHANGE, payload: id });
    
    Rafael László's avatar
    Rafael László committed
          return (dispatch) => dispatch({ type: ABSENT_CHANGE, payload: id });
    
    Rafael László's avatar
    Rafael László committed
          return (dispatch) => dispatch({ type: CHANGE_NO, payload: id });
    
    Rafael László's avatar
    Rafael László committed
          return null;
    
    Rafael László's avatar
    Rafael László committed
    export const submitVisitors = ({ id, visitors, absent }) => async () => {
      try {
        const response = await axios.patch(`/api/v1/staff_events/${id}/`, {
          visitors,
          absent,
        });
        if (response.data.id === id) {
          return true;
    
    Rafael László's avatar
    Rafael László committed
        return false;
      } catch (e) {
        console.log(e);
        return false;
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const writeEvent = ({ target: { name, value } }) => (dispatch) => {
      dispatch({ type: WRITE_EVENT, payload: value, target: name });
    };
    
    Rafael László's avatar
    Rafael László committed
    export const eventDate = (name, value) => (dispatch) => {
      dispatch({ type: WRITE_EVENT, payload: value, target: name });
    };
    
    Rafael László's avatar
    Rafael László committed
    export const addEvent = ({ name, date, description }) => async (dispatch) => {
      try {
        const response = await axios.post('/api/v1/staff_events/', {
          name,
          date,
          description,
          absent: [],
        });
        if (response.data.id) {
          alert('Sikeres mentés!');
          dispatch({
            type: ADD_EVENT,
            payload: response.data,
    
    Chif Gergő's avatar
    Chif Gergő committed
          });
    
    Rafael László's avatar
    Rafael László committed
        } else {
          alert('Mentés nem sikerült!');
    
    Rafael László's avatar
    Rafael László committed
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const deleteEvent = (event) => async (dispatch) => {
      try {
        const response = await axios.delete(`/api/v1/staff_events/${event.id}/`);
        if (!response.data.id) {
          alert('Sikeres törlés!');
    
    Rafael László's avatar
    Rafael László committed
            type: DELETE_EVENT,
            payload: event,
    
    Rafael László's avatar
    Rafael László committed
        } else {
          alert('A törlés nem sikerült!');
    
    Rafael László's avatar
    Rafael László committed
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const getProfiles = () => async (dispatch) => {
      try {
        const response = await axios.get('/api/v1/profiles/');
        dispatch({
          type: GET_PROFILES,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    Rafael László's avatar
    Rafael László committed
    export const setStatus = (id, status) => async (dispatch) => {
      try {
        const response = await axios.patch(`/api/v1/profiles/${id}/`, {
          role: status,
        });
        if (response.data.id) {
    
    Rafael László's avatar
    Rafael László committed
            type: SET_STATUS,
    
    Rafael László's avatar
    Rafael László committed
      } catch (e) {
        console.log(e);
    
    Rafael László's avatar
    Rafael László committed
    };
    
    export const getSelectedProfile = (id) => async (dispatch) => {
      try {
        const response = await axios.get(`/api/v1/profiles/${id}/`);
        dispatch({
          type: GET_SELECTED_PROFILE,
          payload: response.data,
        });
      } catch (e) {
        console.log(e);
      }
    };