package com.rzg.zombieland.server.comunicacion.controlador;
import com.google.gson.Gson;
import com.rzg.zombieland.comunes.comunicacion.pojo.POJORegistro;
import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaGenerica;
import com.rzg.zombieland.comunes.controlador.Controlador;
import com.rzg.zombieland.comunes.misc.ZombielandException;
import com.rzg.zombieland.server.persistencia.JugadorDao;
import com.rzg.zombieland.server.sesion.Jugador;
/**
* Controla el registro de usuario.
* @author nicolas
*/
public class ControladorRegistro extends Controlador {
@Override
public String procesar(String linea) {
Gson gson = new Gson();
POJORegistro registro = gson.fromJson(linea, POJORegistro.class);
JugadorDao dao = new JugadorDao();
try {
Jugador jugador = new Jugador(registro);
Jugador existente = dao.getJugadorPorNombre(jugador.getNombre());
if (existente != null)
throw new ZombielandException("El usuario ya existe");
dao.guardarObjeto(jugador);
return gson.toJson(new RespuestaGenerica());
} catch (ZombielandException e) {
return gson.toJson(new RespuestaGenerica(e.getMessage()));
} finally {
dao.cerrarSesion();
}
}
}