Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3263 | Rev 3268 | 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,
5
  sendUserUuidToNative
6
} from '@utils'
2219 stevensc 7
import { actionsTypes } from './auth.types'
5 stevensc 8
 
96 stevensc 9
export const setPermissions = (permissions) => ({
5 stevensc 10
  type: actionsTypes.SET_PERMISSIONS,
2219 stevensc 11
  payload: permissions
12
})
5 stevensc 13
 
14
export const startLoading = () => ({
2219 stevensc 15
  type: actionsTypes.START_LOADING
16
})
5 stevensc 17
 
18
export const stopLoading = () => ({
2219 stevensc 19
  type: actionsTypes.STOP_LOADING
20
})
5 stevensc 21
 
2219 stevensc 22
export const logout = () => {
23
  return (dispatch) => {
2237 stevensc 24
    window.localStorage.removeItem('jwt')
25
    window.localStorage.removeItem('aes')
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
35
 
36
    if (!success) {
37
      const err = typeof data === 'string' ? data : 'Error al iniciar sesión'
38
      throw new Error(err)
39
    }
40
 
41
    dispatch(logout())
42
 
43
    return data
44
  }
45
}
46
 
3262 stevensc 47
export const asyncLogin = ({ email, password, remember, captcha }) => {
48
  return async (dispatch) => {
49
    const formData = new FormData()
50
    formData.append('email', email)
51
    formData.append('password', password)
52
    formData.append('remember', remember)
53
    formData.append('captcha', captcha)
54
 
55
    const response = await axios.post('/signin', formData)
56
 
57
    const { success, data } = response.data
3267 stevensc 58
    const isAndroid = isAndroidDevice()
59
    const isIOS = isIOSDevice()
3262 stevensc 60
 
61
    if (!success) {
62
      const err = typeof data === 'string' ? data : 'Error al iniciar sesión'
63
      throw new Error(err)
64
    }
65
 
3267 stevensc 66
    if (isAndroid || isIOS) {
67
      sendUserUuidToNative('')
68
    }
69
 
3262 stevensc 70
    dispatch(login())
71
 
3263 stevensc 72
    const redirectPath = new URL(data.redirect).pathname
73
    return { ...data, redirect: redirectPath }
3262 stevensc 74
  }
75
}
76
 
66 stevensc 77
export const login = () => ({
2219 stevensc 78
  type: actionsTypes.LOGIN
79
})
5 stevensc 80
 
2219 stevensc 81
export const removeAuth = () => ({
82
  type: actionsTypes.LOGOUT
83
})