Proyectos de Subversion LeadersLinked - SPA

Rev

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) => ({
3400 stevensc 11
  type: actionsTypes.SET_CREDENTIALS,
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) => {
25
    dispatch(removeAuth())
26
  }
27
}
28
 
3267 stevensc 29
export const asyncLogout = () => {
30
  return async (dispatch) => {
31
    const response = await axios.get('/signout')
32
 
33
    const { success, data } = response.data
3268 stevensc 34
    const isAndroid = isAndroidDevice()
35
    const isIOS = isIOSDevice()
3267 stevensc 36
 
37
    if (!success) {
3396 stevensc 38
      throw new Error('Error al cerrar sesión')
3267 stevensc 39
    }
3268 stevensc 40
    if (isAndroid || isIOS) logoutUserToNative(data.uuid)
41
 
3407 stevensc 42
    window.localStorage.removeItem('jwt')
3267 stevensc 43
    dispatch(logout())
44
 
45
    return data
46
  }
47
}
48
 
3396 stevensc 49
export const asyncLogin = (formData) => {
3262 stevensc 50
  return async (dispatch) => {
51
    const response = await axios.post('/signin', formData)
52
 
53
    const { success, data } = response.data
3267 stevensc 54
    const isAndroid = isAndroidDevice()
55
    const isIOS = isIOSDevice()
3262 stevensc 56
 
57
    if (!success) {
3396 stevensc 58
      throw new Error('Error al iniciar sesión')
3262 stevensc 59
    }
60
 
3268 stevensc 61
    if (isAndroid || isIOS) loginUserToNative(data.uuid)
3267 stevensc 62
 
3262 stevensc 63
    dispatch(login())
64
 
3263 stevensc 65
    const redirectPath = new URL(data.redirect).pathname
66
    return { ...data, redirect: redirectPath }
3262 stevensc 67
  }
68
}
69
 
66 stevensc 70
export const login = () => ({
2219 stevensc 71
  type: actionsTypes.LOGIN
72
})
5 stevensc 73
 
2219 stevensc 74
export const removeAuth = () => ({
75
  type: actionsTypes.LOGOUT
76
})