Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3267 stevensc 1
import {
2
  axios,
3
  isAndroidDevice,
4
  isIOSDevice,
3268 stevensc 5
  loginUserToNative,
6
  logoutUserToNative
3267 stevensc 7
} from '@utils'
2219 stevensc 8
import { actionsTypes } from './auth.types'
5 stevensc 9
 
3396 stevensc 10
export const setCrendentials = (crendentials) => ({
5 stevensc 11
  type: actionsTypes.SET_PERMISSIONS,
3396 stevensc 12
  payload: crendentials
2219 stevensc 13
})
5 stevensc 14
 
15
export const startLoading = () => ({
2219 stevensc 16
  type: actionsTypes.START_LOADING
17
})
5 stevensc 18
 
19
export const stopLoading = () => ({
2219 stevensc 20
  type: actionsTypes.STOP_LOADING
21
})
5 stevensc 22
 
2219 stevensc 23
export const logout = () => {
24
  return (dispatch) => {
2237 stevensc 25
    window.localStorage.removeItem('jwt')
2219 stevensc 26
    dispatch(removeAuth())
27
  }
28
}
29
 
3267 stevensc 30
export const asyncLogout = () => {
31
  return async (dispatch) => {
32
    const response = await axios.get('/signout')
33
 
34
    const { success, data } = response.data
3268 stevensc 35
    const isAndroid = isAndroidDevice()
36
    const isIOS = isIOSDevice()
3267 stevensc 37
 
38
    if (!success) {
3396 stevensc 39
      throw new Error('Error al cerrar sesión')
3267 stevensc 40
    }
41
 
3268 stevensc 42
    if (isAndroid || isIOS) logoutUserToNative(data.uuid)
43
 
3267 stevensc 44
    dispatch(logout())
45
 
46
    return data
47
  }
48
}
49
 
3396 stevensc 50
export const asyncLogin = (formData) => {
3262 stevensc 51
  return async (dispatch) => {
52
    const response = await axios.post('/signin', formData)
53
 
54
    const { success, data } = response.data
3267 stevensc 55
    const isAndroid = isAndroidDevice()
56
    const isIOS = isIOSDevice()
3262 stevensc 57
 
58
    if (!success) {
3396 stevensc 59
      throw new Error('Error al iniciar sesión')
3262 stevensc 60
    }
61
 
3268 stevensc 62
    if (isAndroid || isIOS) loginUserToNative(data.uuid)
3267 stevensc 63
 
3262 stevensc 64
    dispatch(login())
65
 
3263 stevensc 66
    const redirectPath = new URL(data.redirect).pathname
67
    return { ...data, redirect: redirectPath }
3262 stevensc 68
  }
69
}
70
 
66 stevensc 71
export const login = () => ({
2219 stevensc 72
  type: actionsTypes.LOGIN
73
})
5 stevensc 74
 
2219 stevensc 75
export const removeAuth = () => ({
76
  type: actionsTypes.LOGOUT
77
})