Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 64 | Rev 66 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
32 stevensc 1
import { axios } from "../../utils";
2
import { actionsTypes } from "./auth.types";
5 stevensc 3
 
63 stevensc 4
const getPermissions = () => {
5 stevensc 5
  return (dispatch) => {
32 stevensc 6
    dispatch(startLoading());
5 stevensc 7
    axios
32 stevensc 8
      .get("/signin", { headers: { "Content-Type": "application/json" } })
38 stevensc 9
      .then((response) => {
63 stevensc 10
        const { success, data } = response.data;
38 stevensc 11
 
63 stevensc 12
        if (!success) {
13
          throw new Error(data);
38 stevensc 14
        }
15
 
63 stevensc 16
        if (data.jwt) {
17
          window.localStorage.setItem("jwt", data.jwt);
18
        }
19
 
20
        dispatch(setPermissions(data));
5 stevensc 21
      })
22
      .catch((err) => {
32 stevensc 23
        console.log(err);
24
        throw new Error(err);
5 stevensc 25
      })
32 stevensc 26
      .finally(() => dispatch(stopLoading()));
27
  };
28
};
5 stevensc 29
 
63 stevensc 30
export const validateAuth = () => {
31
  return (dispatch) => {
32
    const token = window.localStorage.getItem("jwt");
33
 
34
    if (token) {
65 stevensc 35
      dispatch(login());
36
      return null;
63 stevensc 37
    }
38
 
39
    dispatch(getPermissions());
40
  };
41
};
42
 
5 stevensc 43
const setPermissions = (permissions) => ({
44
  type: actionsTypes.SET_PERMISSIONS,
45
  payload: permissions,
32 stevensc 46
});
5 stevensc 47
 
48
export const startLoading = () => ({
49
  type: actionsTypes.START_LOADING,
32 stevensc 50
});
5 stevensc 51
 
52
export const stopLoading = () => ({
53
  type: actionsTypes.STOP_LOADING,
32 stevensc 54
});
5 stevensc 55
 
65 stevensc 56
export const login = () => {
57
  console.log("Processing login");
58
  return {
59
    type: actionsTypes.LOGIN,
60
  };
61
};
5 stevensc 62
 
63
export const logout = () => ({
64
  type: actionsTypes.LOGOUT,
32 stevensc 65
});