nuevaSolicitud.js 1.59 KB
import { merge, mergeAll, mergeDeepRight } from 'ramda'

import {
  SELECCIONAR_INSTITUCION,
  CAMBIAR_TITULO,
  CAMBIAR_DESCRIPCION,
  CAMBIAR_FORMATO,
  CAMBIAR_SOPORTE,
  CAMBIAR_TIPO_RESPUESTA,
} from '../actions/nuevaSolicitud'

import { SOLICITUD_POST_SUCCESS } from '../actions/solicitudes'

const payload = {
  mail: '',
  nombre: '',
  apellido: '',
  domicilio: '',
  telefono: '',
  sexo: '',
  especificarSexo: '',
  nacionalidad: '',
  titulo: '',
  descripcion: '',
  fechaNacimiento: 0,
  distritoID: 0,
  institucionID: 0, //ya
  tipoRespuestaID: 0, //ya
  soporteID: 0, //ya
  formatoID: 0//ya
}


const nuevaSolicitud = {
  payload,
  solicitud: {
    titulo: '',
    descripcion: ''
  },
  institucion: null,
  tipoRespuesta: null,
  soporte: null,
  formato: null,
  loading: false,
  error: null,
}

export default (state, action) => {
  switch (action.type) {

    case SELECCIONAR_INSTITUCION:
      return merge(state, { institucion: action.institucion })

    case CAMBIAR_TITULO:
      return mergeDeepRight(state, { solicitud: { titulo: action.titulo } })
    case CAMBIAR_DESCRIPCION:
      return mergeDeepRight(state, { solicitud: { descripcion: action.descripcion } })
    case CAMBIAR_FORMATO:
      return merge(state, { formato: action.formato })
    case CAMBIAR_SOPORTE:
      return merge(state, { soporte: action.soporte })
    case CAMBIAR_TIPO_RESPUESTA:
      return merge(state, { tipoRespuesta: action.tipoRespuesta })
    case SOLICITUD_POST_SUCCESS:
      return mergeAll([state, { result: action.result }, nuevaSolicitud])

    default:
      return state || nuevaSolicitud
  }
}