package com.rzg.zombieland.server.comunicacion.controlador;
import com.google.gson.Gson;
import com.rzg.zombieland.comunes.comunicacion.pojo.POJONombreUsuario;
import com.rzg.zombieland.comunes.comunicacion.pojo.POJOPreguntaSeguridad;
import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaGenerica;
import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaPreguntaSeg;
import com.rzg.zombieland.comunes.controlador.Controlador;
import com.rzg.zombieland.comunes.misc.ParametrosNoValidosException;
import com.rzg.zombieland.server.persistencia.JugadorDao;
import com.rzg.zombieland.server.sesion.Jugador;
/**
* Gestiona una peticion de recuperar contrase�a, debe encontrar el usuario
* y devolver la pregunta de seguridad.
* @author Nicolas L
*
*/
public class ControladorObtenerPreguntaSeguridad extends Controlador{
@Override
public String procesar(String linea) {
Gson gson = new Gson();
POJONombreUsuario nombre = gson.fromJson(linea, POJONombreUsuario.class);
String nombreUsuario = nombre.getNombre();
JugadorDao dao = new JugadorDao();
Jugador jugador = dao.getJugadorPorNombre(nombreUsuario);
dao.cerrarSesion();
if (jugador == null) {
return gson.toJson(new RespuestaGenerica("El usuario no existe"));
}
try {
RespuestaPreguntaSeg rta = new RespuestaPreguntaSeg(
new POJOPreguntaSeguridad(jugador.getPreguntaSecreta(),
jugador.getRespuestaSecreta()));
return gson.toJson(rta);
} catch (ParametrosNoValidosException e) {
return gson.toJson(new RespuestaGenerica("No se encontraron datos."));
}
}
}