usuario.js 1.99 KB
import { AsyncStorage } from 'react-native'
import { merge } from 'ramda'

export const EXISTE_USUARIO_LOCAL_REQUEST = 'EXISTE_USUARIO_LOCAL_REQUEST'
export const existeUsuarioLocalRequest = () => ({
    type: EXISTE_USUARIO_LOCAL_REQUEST
  })

export const EXISTE_USUARIO_LOCAL_ERROR = 'EXISTE_USUARIO_LOCAL_ERROR'
export const existeUsuarioLocalError = (error) => ({
    type: EXISTE_USUARIO_LOCAL_ERROR,
    error
  })


export const EXISTE_USUARIO_LOCAL_RESPONSE = 'EXISTE_USUARIO_LOCAL_RESPONSE'
export const existeUsuarioLocalResponse = (usuario) => ({
  type: EXISTE_USUARIO_LOCAL_RESPONSE,
  usuario
  })

export const comprobarExistenciaUsuarioLocal = () =>
  (dispatch) => {
    dispatch(existeUsuarioLocalRequest())
    return AsyncStorage.getItem('@Jaikuaamina:usuario')
    .then((usuario) => dispatch(existeUsuarioLocalResponse(JSON.parse(usuario))))
    .catch((error) => dispatch(existeUsuarioLocalError(error)))
  }


export const GUARDAR_USUARIO_LOCAL_REQUEST = 'GUARDAR_USUARIO_LOCAL_REQUEST'
export const guardarUsuarioLocalRequest = () => ({
    type: GUARDAR_USUARIO_LOCAL_REQUEST
  })


export const GUARDAR_USUARIO_LOCAL_RESPONSE = 'GUARDAR_USUARIO_LOCAL_RESPONSE'
export const guardarUsuarioLocalResponse = (respuesta) => ({
  type: GUARDAR_USUARIO_LOCAL_RESPONSE,
  respuesta
  })

export const GUARDAR_USUARIO_LOCAL_ERROR = 'GUARDAR_USUARIO_LOCAL_ERROR'
export const guardarUsuarioLocalError = (error) => ({
  type: GUARDAR_USUARIO_LOCAL_ERROR,
  error
  })

export const guardarUsuarioLocal = (usuario) =>
  (dispatch) => {
    const data = merge(usuario, { guardado: true, loading: false })
    dispatch(guardarUsuarioLocalRequest())
    return AsyncStorage.setItem('@Jaikuaamina:usuario', JSON.stringify(data))
    .then((respuesta) => dispatch(guardarUsuarioLocalResponse(respuesta)))
    .catch((error) => dispatch(guardarUsuarioLocalError(error)))
  }

export const CAMBIAR_DATOS_USUARIO = 'CAMBIAR_DATOS_USUARIO'
export const cambiarDatosUsuario = (datos) => ({
  type: CAMBIAR_DATOS_USUARIO,
  datos
})