Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package resources; import bean.RedSocial; import dto.ActualizarUsuarioDTO; import dto.AmigosDTO; import dto.ComentarioDTO; import dto.ComentariosDTO; import dto.EscuelaDTO; import dto.EscuelasDTO; import dto.GestionarPeticionDTO; import dto.NewPasswordDTO; import dto.NuevaViaDTO; import dto.NuevoUsuarioDTO; import dto.NumeroPeticionesDTO; import dto.PerfilDTO; import dto.PeticionDTO; import dto.ProvinciaDTO; import dto.SectorDTO; import dto.SectoresDTO; import dto.UsernameDTO; import dto.ValorarViaDTO; import dto.ViasDTO; import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Locale; import modelo.Comentario; import modelo.Escuela; import modelo.Nivel; import modelo.PeticionAmistad; import modelo.Provincia; import modelo.Sector; import modelo.Usuario; import modelo.Via; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; /** * * @author Daniel */ @RestController @RequestMapping("/") public class RedSocialColaborativaRESTFUL { @Autowired private RedSocial red; /** * * @param _usuario * @return */ @RequestMapping(value = "/perfil/acceso", method = RequestMethod.POST, consumes = "application/json") public ResponseEntity<String> solicitudAcceso(@RequestBody NuevoUsuarioDTO _usuario) { if (!_usuario.getMail().equals(_usuario.getConfMail())) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } else if (!_usuario.getPassword().equals(_usuario.getConfPassword())) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } try { red.solicitarAcceso(_usuario.getUsername(), _usuario.getMail(), _usuario.getPassword()); } catch (RuntimeException e) { //codigo 409 return new ResponseEntity<>(HttpStatus.CONFLICT); } return new ResponseEntity<>(HttpStatus.OK); } /** * * @param _token * @return * @throws NoSuchAlgorithmException */ @RequestMapping(value = "/confirmacion/{token}", method = RequestMethod.POST, consumes = "application/json", produces = "application/json") public ResponseEntity<String> altaUsuario(@PathVariable("token") String _token) throws NoSuchAlgorithmException { try { red.altaUsuario(_token); } catch (RuntimeException ex) { throw new exceptionsBusiness.TokenCaducado(); } return new ResponseEntity<>(HttpStatus.OK); } /** * */ @RequestMapping(value = "/perfil", method = RequestMethod.DELETE) public void bajaUsuario() { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); red.bajaUsuario(); } /** * * @param _usuario * @return * @throws IOException */ @RequestMapping(value = "/perfil", method = RequestMethod.PUT, consumes = "application/json", produces = "application/json") public ResponseEntity<String> actualizarUsuario(@RequestBody ActualizarUsuarioDTO _usuario) throws IOException { if (!_usuario.getMail().equals(_usuario.getConfMail())) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); red.actualizarPerfilUsuario(_usuario.getNombre(), _usuario.getApellidos(), _usuario.getMail(), _usuario.getDir_foto()); return new ResponseEntity<>(HttpStatus.OK); } /** * * @param _newPasswordDTO * @return * @throws NoSuchAlgorithmException */ @RequestMapping(value = "/perfil/password", method = RequestMethod.PUT, consumes = "application/json", produces = "application/json") public ResponseEntity<String> cambioPasswordUsuario(@RequestBody NewPasswordDTO _newPasswordDTO) throws NoSuchAlgorithmException { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); if (_newPasswordDTO.getPasswordActual() == null) { return new ResponseEntity<>(HttpStatus.CONFLICT); } if (!encoder.matches(_newPasswordDTO.getPasswordActual(), ((UserDetails) principal).getPassword())) { return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } } if (!_newPasswordDTO.getNewPassword().equals(_newPasswordDTO.getConfPassword())) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } red.setUsername(usernameConectado); red.cambiarPassword(_newPasswordDTO.getNewPassword()); return new ResponseEntity<>(HttpStatus.OK); } /** * * @return */ @RequestMapping(value = "/perfil", method = RequestMethod.GET, produces = "application/json") public @ResponseBody PerfilDTO miPerfil() { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); String nivel = null; if (null != red.getUsuarioConectado().getNivel().getNivelAsociado()) { switch (red.getUsuarioConectado().getNivel().getNivelAsociado()) { case _1: nivel = "1"; break; case _2: nivel = "2"; break; case _3: nivel = "3"; break; case _4: nivel = "4"; break; case _5: nivel = "5"; break; case _5m: nivel = "5+"; break; case _6a: nivel = "6a"; break; case _6am: nivel = "6a+"; break; case _6b: nivel = "6b"; break; case _6bm: nivel = "6b+"; break; case _6c: nivel = "6c"; break; case _6cm: nivel = "6c+"; break; case _7a: nivel = "7a"; break; case _7am: nivel = "7a+"; break; case _7b: nivel = "7b"; break; case _7bm: nivel = "7b+"; break; case _7c: nivel = "7c"; break; case _7cm: nivel = "7c+"; break; case _8a: nivel = "8a"; break; case _8am: nivel = "8a+"; break; case _8b: nivel = "8b"; break; case _8bm: nivel = "8b+"; break; case _8c: nivel = "8c"; break; case _8cm: nivel = "8c+"; break; case _9a: nivel = "9a"; break; case _9am: nivel = "9a+"; break; case _9b: nivel = "9b"; break; case _9bm: nivel = "9b+"; break; case _9c: nivel = "9c"; break; case _9cm: nivel = "9c+"; break; default: break; } } return new PerfilDTO(red.getUsuarioConectado().getUsername(), red.getUsuarioConectado().getNombre(), red.getUsuarioConectado().getApellidos(), nivel, red.getUsuarioConectado().getEmail(), red.getUsuarioConectado().getFotoperfil()); } /** * * @param _username * @return */ @RequestMapping(value = "/perfil/{username}", method = RequestMethod.GET, produces = "application/json") public @ResponseBody PerfilDTO verPerfil(@PathVariable("username") String _username) { red.setUsername(_username); Usuario u = red.getDaoUsuario().obtenerUsuario(_username); String nivel = null; if (null != u.getNivel().getNivelAsociado()) { switch (u.getNivel().getNivelAsociado()) { case _1: nivel = "1"; break; case _2: nivel = "2"; break; case _3: nivel = "3"; break; case _4: nivel = "4"; break; case _5: nivel = "5"; break; case _5m: nivel = "5+"; break; case _6a: nivel = "6a"; break; case _6am: nivel = "6a+"; break; case _6b: nivel = "6b"; break; case _6bm: nivel = "6b+"; break; case _6c: nivel = "6c"; break; case _6cm: nivel = "6c+"; break; case _7a: nivel = "7a"; break; case _7am: nivel = "7a+"; break; case _7b: nivel = "7b"; break; case _7bm: nivel = "7b+"; break; case _7c: nivel = "7c"; break; case _7cm: nivel = "7c+"; break; case _8a: nivel = "8a"; break; case _8am: nivel = "8a+"; break; case _8b: nivel = "8b"; break; case _8bm: nivel = "8b+"; break; case _8c: nivel = "8c"; break; case _8cm: nivel = "8c+"; break; case _9a: nivel = "9a"; break; case _9am: nivel = "9a+"; break; case _9b: nivel = "9b"; break; case _9bm: nivel = "9b+"; break; case _9c: nivel = "9c"; break; case _9cm: nivel = "9c+"; break; default: break; } } return new PerfilDTO(u.getUsername(), u.getNombre(), u.getApellidos(), nivel, u.getEmail(), u.getFotoperfil()); } /** * * @return */ @RequestMapping(value = "/perfil/amigos", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<AmigosDTO> misAmigos() { List<AmigosDTO> amigos = new ArrayList(); String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); for (Usuario amigo : red.getUsuarioConectado().getAmigos()) { AmigosDTO aux = new AmigosDTO(); aux.setUsername(amigo.getUsername()); aux.setNombre(amigo.getNombre() + ' ' + amigo.getApellidos()); amigos.add(aux); } return amigos; } /** * * @param _username * @return */ @RequestMapping(value = "/perfil/{username}/amigos", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<AmigosDTO> amigosPerfil(@PathVariable("username") String _username) { List<AmigosDTO> amigos = new ArrayList(); red.setUsername(_username); Usuario u = red.getDaoUsuario().obtenerUsuario(_username); for (Usuario amigo : u.getAmigos()) { AmigosDTO aux = new AmigosDTO(); aux.setUsername(amigo.getUsername()); aux.setNombre(amigo.getNombre() + ' ' + amigo.getApellidos()); amigos.add(aux); } return amigos; } /** * * @return */ @RequestMapping(value = "/perfil/vias", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<ViasDTO> misVias() { List<ViasDTO> vias = new ArrayList(); String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); for (Via via : red.getUsuarioConectado().getViasRealizadas()) { ViasDTO aux = new ViasDTO(); aux.setId_via(via.getId_via()); aux.setId_mapa(via.getIdv_via()); aux.setNombre(via.getNombre()); aux.setSector(via.getSector().getNombreSector()); aux.setEscuela(via.getSector().getEscuela().getNombreEscuela()); aux.setProvincia(via.getSector().getEscuela().getUbicacion().getProvincia()); aux.setContador(via.getContador()); aux.setEstrellas(via.getEstrellas()); switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_oficial("1"); break; case _2: aux.setNivel_oficial("2"); break; case _3: aux.setNivel_oficial("3"); break; case _4: aux.setNivel_oficial("4"); break; case _5: aux.setNivel_oficial("5"); break; case _5m: aux.setNivel_oficial("5+"); break; case _6a: aux.setNivel_oficial("6a"); break; case _6am: aux.setNivel_oficial("6a+"); break; case _6b: aux.setNivel_oficial("6b"); break; case _6bm: aux.setNivel_oficial("6b+"); break; case _6c: aux.setNivel_oficial("6c"); break; case _6cm: aux.setNivel_oficial("6c+"); break; case _7a: aux.setNivel_oficial("7a"); break; case _7am: aux.setNivel_oficial("7a+"); break; case _7b: aux.setNivel_oficial("7b"); break; case _7bm: aux.setNivel_oficial("7b+"); break; case _7c: aux.setNivel_oficial("7c"); break; case _7cm: aux.setNivel_oficial("7c+"); break; case _8a: aux.setNivel_oficial("8a"); break; case _8am: aux.setNivel_oficial("8a+"); break; case _8b: aux.setNivel_oficial("8b"); break; case _8bm: aux.setNivel_oficial("8b+"); break; case _8c: aux.setNivel_oficial("8c"); break; case _8cm: aux.setNivel_oficial("8c+"); break; case _9a: aux.setNivel_oficial("9a"); break; case _9am: aux.setNivel_oficial("9a+"); break; case _9b: aux.setNivel_oficial("9b"); break; case _9bm: aux.setNivel_oficial("9b+"); break; case _9c: aux.setNivel_oficial("9c"); break; case _9cm: aux.setNivel_oficial("9c+"); break; default: break; } switch (via.getNivelConsensuado().getNivelAsociado()) { case _1: aux.setNivel_consensuado("1"); break; case _2: aux.setNivel_consensuado("2"); break; case _3: aux.setNivel_consensuado("3"); break; case _4: aux.setNivel_consensuado("4"); break; case _5: aux.setNivel_consensuado("5"); break; case _5m: aux.setNivel_consensuado("5+"); break; case _6a: aux.setNivel_consensuado("6a"); break; case _6am: aux.setNivel_consensuado("6a+"); break; case _6b: aux.setNivel_consensuado("6b"); break; case _6bm: aux.setNivel_consensuado("6b+"); break; case _6c: aux.setNivel_consensuado("6c"); break; case _6cm: aux.setNivel_consensuado("6c+"); break; case _7a: aux.setNivel_consensuado("7a"); break; case _7am: aux.setNivel_consensuado("7a+"); break; case _7b: aux.setNivel_consensuado("7b"); break; case _7bm: aux.setNivel_consensuado("7b+"); break; case _7c: aux.setNivel_consensuado("7c"); break; case _7cm: aux.setNivel_consensuado("7c+"); break; case _8a: aux.setNivel_consensuado("8a"); break; case _8am: aux.setNivel_consensuado("8a+"); break; case _8b: aux.setNivel_consensuado("8b"); break; case _8bm: aux.setNivel_consensuado("8b+"); break; case _8c: aux.setNivel_consensuado("8c"); break; case _8cm: aux.setNivel_consensuado("8c+"); break; case _9a: aux.setNivel_consensuado("9a"); break; case _9am: aux.setNivel_consensuado("9a+"); break; case _9b: aux.setNivel_consensuado("9b"); break; case _9bm: aux.setNivel_consensuado("9b+"); break; case _9c: aux.setNivel_consensuado("9c"); break; case _9cm: aux.setNivel_consensuado("9c+"); break; default: break; } vias.add(aux); } return vias; } /** * * @param _usernameConectado * @return */ @RequestMapping(value = "/perfil/{username}/vias", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<ViasDTO> viasPerfil(@PathVariable("username") String _usernameConectado) { List<ViasDTO> vias = new ArrayList(); red.setUsername(_usernameConectado); Usuario u = red.getDaoUsuario().obtenerUsuario(_usernameConectado); for (Via via : u.getViasRealizadas()) { ViasDTO aux = new ViasDTO(); aux.setId_via(via.getId_via()); aux.setId_mapa(via.getIdv_via()); aux.setNombre(via.getNombre()); aux.setSector(via.getSector().getNombreSector()); aux.setContador(via.getContador()); aux.setEstrellas(via.getEstrellas()); switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_oficial("1"); break; case _2: aux.setNivel_oficial("2"); break; case _3: aux.setNivel_oficial("3"); break; case _4: aux.setNivel_oficial("4"); break; case _5: aux.setNivel_oficial("5"); break; case _5m: aux.setNivel_oficial("5+"); break; case _6a: aux.setNivel_oficial("6a"); break; case _6am: aux.setNivel_oficial("6a+"); break; case _6b: aux.setNivel_oficial("6b"); break; case _6bm: aux.setNivel_oficial("6b+"); break; case _6c: aux.setNivel_oficial("6c"); break; case _6cm: aux.setNivel_oficial("6c+"); break; case _7a: aux.setNivel_oficial("7a"); break; case _7am: aux.setNivel_oficial("7a+"); break; case _7b: aux.setNivel_oficial("7b"); break; case _7bm: aux.setNivel_oficial("7b+"); break; case _7c: aux.setNivel_oficial("7c"); break; case _7cm: aux.setNivel_oficial("7c+"); break; case _8a: aux.setNivel_oficial("8a"); break; case _8am: aux.setNivel_oficial("8a+"); break; case _8b: aux.setNivel_oficial("8b"); break; case _8bm: aux.setNivel_oficial("8b+"); break; case _8c: aux.setNivel_oficial("8c"); break; case _8cm: aux.setNivel_oficial("8c+"); break; case _9a: aux.setNivel_oficial("9a"); break; case _9am: aux.setNivel_oficial("9a+"); break; case _9b: aux.setNivel_oficial("9b"); break; case _9bm: aux.setNivel_oficial("9b+"); break; case _9c: aux.setNivel_oficial("9c"); break; case _9cm: aux.setNivel_oficial("9c+"); break; default: break; } switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_consensuado("1"); break; case _2: aux.setNivel_consensuado("2"); break; case _3: aux.setNivel_consensuado("3"); break; case _4: aux.setNivel_consensuado("4"); break; case _5: aux.setNivel_consensuado("5"); break; case _5m: aux.setNivel_consensuado("5+"); break; case _6a: aux.setNivel_consensuado("6a"); break; case _6am: aux.setNivel_consensuado("6a+"); break; case _6b: aux.setNivel_consensuado("6b"); break; case _6bm: aux.setNivel_consensuado("6b+"); break; case _6c: aux.setNivel_consensuado("6c"); break; case _6cm: aux.setNivel_consensuado("6c+"); break; case _7a: aux.setNivel_consensuado("7a"); break; case _7am: aux.setNivel_consensuado("7a+"); break; case _7b: aux.setNivel_consensuado("7b"); break; case _7bm: aux.setNivel_consensuado("7b+"); break; case _7c: aux.setNivel_consensuado("7c"); break; case _7cm: aux.setNivel_consensuado("7c+"); break; case _8a: aux.setNivel_consensuado("8a"); break; case _8am: aux.setNivel_consensuado("8a+"); break; case _8b: aux.setNivel_consensuado("8b"); break; case _8bm: aux.setNivel_consensuado("8b+"); break; case _8c: aux.setNivel_consensuado("8c"); break; case _8cm: aux.setNivel_consensuado("8c+"); break; case _9a: aux.setNivel_consensuado("9a"); break; case _9am: aux.setNivel_consensuado("9a+"); break; case _9b: aux.setNivel_consensuado("9b"); break; case _9bm: aux.setNivel_consensuado("9b+"); break; case _9c: aux.setNivel_consensuado("9c"); break; case _9cm: aux.setNivel_consensuado("9c+"); break; default: break; } vias.add(aux); } return vias; } /** * * @return */ @RequestMapping(value = "perfil/numeropeticiones", method = RequestMethod.GET, produces = "application/json") public @ResponseBody NumeroPeticionesDTO numeroPeticionesAmistadPendientes() { NumeroPeticionesDTO numero = new NumeroPeticionesDTO(); String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); numero.setNumeroPendientes(red.peticionesAmistadRecibidas().size()); return numero; } /** * * @return */ @RequestMapping(value = "perfil/peticiones", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<PeticionDTO> peticionesAmistadPendientes() { List<PeticionDTO> peticiones = new ArrayList(); String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); for (PeticionAmistad peticion : red.peticionesAmistadRecibidas()) { PeticionDTO aux = new PeticionDTO(peticion.getId_peticion(), peticion.getEmisor().getUsername()); peticiones.add(aux); } return peticiones; } /** * * @param _usuario */ @RequestMapping(value = "/perfil/peticiones", method = RequestMethod.POST, consumes = "application/json") public void solicitarAmistad(@RequestBody UsernameDTO _usuario) { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); try { red.enviarPeticionAmistad(_usuario.getUsername()); } catch (exceptionsBusiness.PeticionYaEnviada ex) { throw new exceptionsBusiness.PeticionYaEnviada(); } } /** * * @param _peticion */ @RequestMapping(value = "/perfil/peticiones", method = RequestMethod.PUT, consumes = "application/json") public void confirmarAmistad(@RequestBody GestionarPeticionDTO _peticion) { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); red.confirmarPeticion(_peticion.getIdPeticion(), _peticion.isConf()); } /** * * @return */ @RequestMapping(value = "/username", method = RequestMethod.GET, produces = "application/json") public @ResponseBody ResponseEntity<?> prueba2() { UsernameDTO aux = new UsernameDTO(); String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } if (usernameConectado == null) { return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } aux.setUsername(usernameConectado); return new ResponseEntity<>(aux, HttpStatus.OK); } /** * * @param _escuela * @throws java.io.IOException */ @RequestMapping(value = "/escuelas", method = RequestMethod.POST, consumes = "application/json") public void nuevaEscuela(@RequestBody EscuelaDTO _escuela) throws IOException { red.nuevaEscuela(_escuela.getNombre(), _escuela.getDescripcion(), _escuela.getHorario(), _escuela.getDir_foto(), _escuela.getCod_provincia()); } /** * * @param _id_escuela * @param _sector * @throws java.io.IOException */ @RequestMapping(value = "/escuelas/{id_escuela}/sectores", method = RequestMethod.POST, consumes = "application/json") public void nuevoSector(@PathVariable("id_escuela") Integer _id_escuela, @RequestBody SectorDTO _sector) throws IOException { red.nuevoSector(_id_escuela, _sector.getOrientacion(), _sector.getNombre(), _sector.getDir_foto()); } /** * * @param _id_sector * @param _via */ @RequestMapping(value = "/sectores/{id_sector}/vias", method = RequestMethod.POST, consumes = "application/json") public void nuevaVia(@PathVariable("id_sector") Integer _id_sector, @RequestBody NuevaViaDTO _via) { Nivel nivel = new Nivel(); switch (_via.getNivel_oficial()) { case "1": nivel.setNivel(Nivel.nivelAsociado._1); break; case "2": nivel.setNivel(Nivel.nivelAsociado._2); break; case "3": nivel.setNivel(Nivel.nivelAsociado._3); break; case "4": nivel.setNivel(Nivel.nivelAsociado._4); break; case "5": nivel.setNivel(Nivel.nivelAsociado._5); break; case "5+": nivel.setNivel(Nivel.nivelAsociado._5m); break; case "6a": nivel.setNivel(Nivel.nivelAsociado._6a); break; case "6a+": nivel.setNivel(Nivel.nivelAsociado._6am); break; case "6b": nivel.setNivel(Nivel.nivelAsociado._6b); break; case "6b+": nivel.setNivel(Nivel.nivelAsociado._6bm); break; case "6c": nivel.setNivel(Nivel.nivelAsociado._6c); break; case "6c+": nivel.setNivel(Nivel.nivelAsociado._6cm); break; case "7a": nivel.setNivel(Nivel.nivelAsociado._7a); break; case "7a+": nivel.setNivel(Nivel.nivelAsociado._7am); break; case "7b": nivel.setNivel(Nivel.nivelAsociado._7b); break; case "7b+": nivel.setNivel(Nivel.nivelAsociado._7bm); break; case "7c": nivel.setNivel(Nivel.nivelAsociado._7c); break; case "7c+": nivel.setNivel(Nivel.nivelAsociado._7cm); break; case "8a": nivel.setNivel(Nivel.nivelAsociado._8a); break; case "8a+": nivel.setNivel(Nivel.nivelAsociado._8am); break; case "8b": nivel.setNivel(Nivel.nivelAsociado._8b); break; case "8b+": nivel.setNivel(Nivel.nivelAsociado._8bm); break; case "8c": nivel.setNivel(Nivel.nivelAsociado._8c); break; case "8c+": nivel.setNivel(Nivel.nivelAsociado._8cm); break; case "9a": nivel.setNivel(Nivel.nivelAsociado._9a); break; case "9a+": nivel.setNivel(Nivel.nivelAsociado._9am); break; case "9b": nivel.setNivel(Nivel.nivelAsociado._9b); break; case "9b+": nivel.setNivel(Nivel.nivelAsociado._9bm); break; case "9c": nivel.setNivel(Nivel.nivelAsociado._9c); break; case "9c+": nivel.setNivel(Nivel.nivelAsociado._9cm); break; default: break; } red.nuevaVia(_id_sector, _via.getNombre(), nivel, _via.getId_mapa()); } /** * * @param _cod_provincia * @return */ @RequestMapping(value = "/escuelas/{cod_prov}", method = RequestMethod.GET, produces = "application/json") public List<EscuelasDTO> escuelasProv(@PathVariable("cod_prov") Integer _cod_provincia) { List<EscuelasDTO> aux_list = new ArrayList(); for (Escuela escuela : red.escuelasProvincia(_cod_provincia)) { EscuelasDTO aux = new EscuelasDTO(); aux.setId_escuela(escuela.getId_escuela()); aux.setNombre(escuela.getNombreEscuela()); aux_list.add(aux); } return aux_list; } /** * * @param _cod_escuela * @return */ @RequestMapping(value = "/sectores/{cod_escuela}", method = RequestMethod.GET, produces = "application/json") public List<SectoresDTO> sectoresEsc(@PathVariable("cod_escuela") Integer _cod_escuela) { List<SectoresDTO> aux_list = new ArrayList(); for (Sector sector : red.sectoresEscuela(_cod_escuela)) { SectoresDTO aux = new SectoresDTO(); aux.setId_sector(sector.getId_sector()); aux.setNombre(sector.getNombreSector()); aux.setOrientacion(sector.getOrientacion().getOrientacion().toString()); aux.setEscuela(sector.getEscuela().getNombreEscuela()); aux_list.add(aux); } return aux_list; } /** * * @param _cod_sector * @return */ @RequestMapping(value = "/vias/{cod_sector}", method = RequestMethod.GET, produces = "application/json") public List<ViasDTO> viasSector(@PathVariable("cod_sector") Integer _cod_sector) { List<ViasDTO> vias = new ArrayList(); for (Via via : red.viasSector(_cod_sector)) { ViasDTO aux = new ViasDTO(); aux.setId_via(via.getId_via()); aux.setId_mapa(via.getIdv_via()); aux.setNombre(via.getNombre()); aux.setSector(via.getSector().getNombreSector()); aux.setContador(via.getContador()); aux.setEstrellas(via.getEstrellas()); switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_oficial("1"); break; case _2: aux.setNivel_oficial("2"); break; case _3: aux.setNivel_oficial("3"); break; case _4: aux.setNivel_oficial("4"); break; case _5: aux.setNivel_oficial("5"); break; case _5m: aux.setNivel_oficial("5+"); break; case _6a: aux.setNivel_oficial("6a"); break; case _6am: aux.setNivel_oficial("6a+"); break; case _6b: aux.setNivel_oficial("6b"); break; case _6bm: aux.setNivel_oficial("6b+"); break; case _6c: aux.setNivel_oficial("6c"); break; case _6cm: aux.setNivel_oficial("6c+"); break; case _7a: aux.setNivel_oficial("7a"); break; case _7am: aux.setNivel_oficial("7a+"); break; case _7b: aux.setNivel_oficial("7b"); break; case _7bm: aux.setNivel_oficial("7b+"); break; case _7c: aux.setNivel_oficial("7c"); break; case _7cm: aux.setNivel_oficial("7c+"); break; case _8a: aux.setNivel_oficial("8a"); break; case _8am: aux.setNivel_oficial("8a+"); break; case _8b: aux.setNivel_oficial("8b"); break; case _8bm: aux.setNivel_oficial("8b+"); break; case _8c: aux.setNivel_oficial("8c"); break; case _8cm: aux.setNivel_oficial("8c+"); break; case _9a: aux.setNivel_oficial("9a"); break; case _9am: aux.setNivel_oficial("9a+"); break; case _9b: aux.setNivel_oficial("9b"); break; case _9bm: aux.setNivel_oficial("9b+"); break; case _9c: aux.setNivel_oficial("9c"); break; case _9cm: aux.setNivel_oficial("9c+"); break; default: break; } switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_consensuado("1"); break; case _2: aux.setNivel_consensuado("2"); break; case _3: aux.setNivel_consensuado("3"); break; case _4: aux.setNivel_consensuado("4"); break; case _5: aux.setNivel_consensuado("5"); break; case _5m: aux.setNivel_consensuado("5+"); break; case _6a: aux.setNivel_consensuado("6a"); break; case _6am: aux.setNivel_consensuado("6a+"); break; case _6b: aux.setNivel_consensuado("6b"); break; case _6bm: aux.setNivel_consensuado("6b+"); break; case _6c: aux.setNivel_consensuado("6c"); break; case _6cm: aux.setNivel_consensuado("6c+"); break; case _7a: aux.setNivel_consensuado("7a"); break; case _7am: aux.setNivel_consensuado("7a+"); break; case _7b: aux.setNivel_consensuado("7b"); break; case _7bm: aux.setNivel_consensuado("7b+"); break; case _7c: aux.setNivel_consensuado("7c"); break; case _7cm: aux.setNivel_consensuado("7c+"); break; case _8a: aux.setNivel_consensuado("8a"); break; case _8am: aux.setNivel_consensuado("8a+"); break; case _8b: aux.setNivel_consensuado("8b"); break; case _8bm: aux.setNivel_consensuado("8b+"); break; case _8c: aux.setNivel_consensuado("8c"); break; case _8cm: aux.setNivel_consensuado("8c+"); break; case _9a: aux.setNivel_consensuado("9a"); break; case _9am: aux.setNivel_consensuado("9a+"); break; case _9b: aux.setNivel_consensuado("9b"); break; case _9bm: aux.setNivel_consensuado("9b+"); break; case _9c: aux.setNivel_consensuado("9c"); break; case _9cm: aux.setNivel_consensuado("9c+"); break; default: break; } vias.add(aux); } return vias; } /** * * @param _cod_via * @param _comentario */ @RequestMapping(value = "/comentarios/{cod_via}", method = RequestMethod.POST, produces = "application/json") public void add_comentario_via(@PathVariable("cod_via") Integer _cod_via, @RequestBody ComentarioDTO _comentario) { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); red.comentarVia(_cod_via, _comentario.getValor_comentario(), _comentario.getPuntuacion(), _comentario.getValoracion()); } /** * * @param _cod_via * @return */ @RequestMapping(value = "/comentarios/{cod_via}", method = RequestMethod.GET, produces = "application/json") public List<ComentariosDTO> comentarios_via(@PathVariable("cod_via") Integer _cod_via) { Integer mes; Integer dia; Integer year; List<ComentariosDTO> comentarios = new ArrayList(); List<ComentariosDTO> comentarios10=new ArrayList(); for (Comentario comentario : red.comentariosVia(_cod_via)) { ComentariosDTO aux = new ComentariosDTO(); aux.setUsername(comentario.getUsuario().getUsername()); aux.setValor_comentario(comentario.getComentario()); aux.setPuntuacion(comentario.getPuntuacin()); aux.setValoracion(comentario.getValoracion()); dia=comentario.getFecha().get(Calendar.DAY_OF_MONTH); mes=comentario.getFecha().get(Calendar.MONTH); year=comentario.getFecha().get(Calendar.YEAR); mes=mes+1; aux.setFecha(dia.toString()+'-'+mes.toString()+'-'+year.toString()); aux.setHora(comentario.getHora().toString()); comentarios.add(aux); } if(comentarios.size() < 10) { for(int i=comentarios.size()-1; i>=0 ;i--) { comentarios10.add(comentarios.get(i)); } } else { for(int i=comentarios.size()-1; i>= comentarios.size()-10; i--) { comentarios10.add(comentarios.get(i)); } } return comentarios10; } @RequestMapping(value = "/perfil/vias/{id_via}", method = RequestMethod.POST, consumes = "application/json") public void realizarVia(@PathVariable("id_via") Integer _id_via, @RequestBody ValorarViaDTO _valoracion) { String usernameConectado = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { usernameConectado = ((UserDetails) principal).getUsername(); } red.setUsername(usernameConectado); Nivel nivel = new Nivel(); switch (_valoracion.getNivel()) { case "1": nivel.setNivel(Nivel.nivelAsociado._1); break; case "2": nivel.setNivel(Nivel.nivelAsociado._2); break; case "3": nivel.setNivel(Nivel.nivelAsociado._3); break; case "4": nivel.setNivel(Nivel.nivelAsociado._4); break; case "5": nivel.setNivel(Nivel.nivelAsociado._5); break; case "5+": nivel.setNivel(Nivel.nivelAsociado._5m); break; case "6a": nivel.setNivel(Nivel.nivelAsociado._6a); break; case "6a+": nivel.setNivel(Nivel.nivelAsociado._6am); break; case "6b": nivel.setNivel(Nivel.nivelAsociado._6b); break; case "6b+": nivel.setNivel(Nivel.nivelAsociado._6bm); break; case "6c": nivel.setNivel(Nivel.nivelAsociado._6c); break; case "6c+": nivel.setNivel(Nivel.nivelAsociado._6cm); break; case "7a": nivel.setNivel(Nivel.nivelAsociado._7a); break; case "7a+": nivel.setNivel(Nivel.nivelAsociado._7am); break; case "7b": nivel.setNivel(Nivel.nivelAsociado._7b); break; case "7b+": nivel.setNivel(Nivel.nivelAsociado._7bm); break; case "7c": nivel.setNivel(Nivel.nivelAsociado._7c); break; case "7c+": nivel.setNivel(Nivel.nivelAsociado._7cm); break; case "8a": nivel.setNivel(Nivel.nivelAsociado._8a); break; case "8a+": nivel.setNivel(Nivel.nivelAsociado._8am); break; case "8b": nivel.setNivel(Nivel.nivelAsociado._8b); break; case "8b+": nivel.setNivel(Nivel.nivelAsociado._8bm); break; case "8c": nivel.setNivel(Nivel.nivelAsociado._8c); break; case "8c+": nivel.setNivel(Nivel.nivelAsociado._8cm); break; case "9a": nivel.setNivel(Nivel.nivelAsociado._9a); break; case "9a+": nivel.setNivel(Nivel.nivelAsociado._9am); break; case "9b": nivel.setNivel(Nivel.nivelAsociado._9b); break; case "9b+": nivel.setNivel(Nivel.nivelAsociado._9bm); break; case "9c": nivel.setNivel(Nivel.nivelAsociado._9c); break; case "9c+": nivel.setNivel(Nivel.nivelAsociado._9cm); break; default: break; } red.realizarVia(_id_via, nivel, _valoracion.getValoracion()); } /** * * @param cod_provicia * @return */ @RequestMapping(value = "/provincia/{cod_provincia}", method = RequestMethod.GET, produces = "application/json") public @ResponseBody ProvinciaDTO provincia(@PathVariable("cod_provincia") Integer cod_provicia) { Provincia provincia = red.getDaoProvincia().obtenerProvincia(cod_provicia); ProvinciaDTO provinciaDTO = new ProvinciaDTO(provincia.getProvincia()); return provinciaDTO; } /** * * @param cod_escuela * @return */ @RequestMapping(value = "/escuela/{cod_escuela}", method = RequestMethod.GET, produces = "application/json") public @ResponseBody EscuelasDTO datosEscuela(@PathVariable("cod_escuela") Integer cod_escuela) { Escuela e = red.getDaoEscuela().obtenerEscuela(cod_escuela); EscuelasDTO escuelasDTO = new EscuelasDTO(e.getId_escuela(), e.getNombreEscuela(), e.getDescripcion(), e.getFotoEscuela(), e.getHorario()); escuelasDTO.setProvincia(e.getUbicacion().getProvincia()); return escuelasDTO; } /** * * @param cod_sector * @return */ @RequestMapping(value = "/sector/{cod_sector}", method = RequestMethod.GET, produces = "application/json") public @ResponseBody SectoresDTO datosSector(@PathVariable("cod_sector") Integer cod_sector) { Sector s = red.getDaoSector().obtenerSector(cod_sector); SectoresDTO dto = new SectoresDTO(s.getId_sector(), s.getOrientacion().getOrientacion().toString(), s.getNombreSector(), s.getFotoSector()); dto.setEscuela(s.getEscuela().getNombreEscuela()); return dto; } /** * * @param cod_via * @return */ @RequestMapping(value = "/via/{cod_via}", method = RequestMethod.GET, produces = "application/json") public @ResponseBody ViasDTO datosVia(@PathVariable("cod_via") Integer cod_via) { Via via = red.getDaoVia().obtenerVia(cod_via); ViasDTO aux = new ViasDTO(); aux.setId_via(via.getId_via()); aux.setId_mapa(via.getIdv_via()); aux.setNombre(via.getNombre()); aux.setSector(via.getSector().getNombreSector()); aux.setContador(via.getContador()); aux.setEstrellas(via.getEstrellas()); aux.setSector(via.getSector().getNombreSector()); aux.setEscuela(via.getSector().getEscuela().getNombreEscuela()); aux.setProvincia(via.getSector().getEscuela().getUbicacion().getProvincia()); switch (via.getNivel().getNivelAsociado()) { case _1: aux.setNivel_oficial("1"); break; case _2: aux.setNivel_oficial("2"); break; case _3: aux.setNivel_oficial("3"); break; case _4: aux.setNivel_oficial("4"); break; case _5: aux.setNivel_oficial("5"); break; case _5m: aux.setNivel_oficial("5+"); break; case _6a: aux.setNivel_oficial("6a"); break; case _6am: aux.setNivel_oficial("6a+"); break; case _6b: aux.setNivel_oficial("6b"); break; case _6bm: aux.setNivel_oficial("6b+"); break; case _6c: aux.setNivel_oficial("6c"); break; case _6cm: aux.setNivel_oficial("6c+"); break; case _7a: aux.setNivel_oficial("7a"); break; case _7am: aux.setNivel_oficial("7a+"); break; case _7b: aux.setNivel_oficial("7b"); break; case _7bm: aux.setNivel_oficial("7b+"); break; case _7c: aux.setNivel_oficial("7c"); break; case _7cm: aux.setNivel_oficial("7c+"); break; case _8a: aux.setNivel_oficial("8a"); break; case _8am: aux.setNivel_oficial("8a+"); break; case _8b: aux.setNivel_oficial("8b"); break; case _8bm: aux.setNivel_oficial("8b+"); break; case _8c: aux.setNivel_oficial("8c"); break; case _8cm: aux.setNivel_oficial("8c+"); break; case _9a: aux.setNivel_oficial("9a"); break; case _9am: aux.setNivel_oficial("9a+"); break; case _9b: aux.setNivel_oficial("9b"); break; case _9bm: aux.setNivel_oficial("9b+"); break; case _9c: aux.setNivel_oficial("9c"); break; case _9cm: aux.setNivel_oficial("9c+"); break; default: break; } switch (via.getNivelConsensuado().getNivelAsociado()) { case _1: aux.setNivel_consensuado("1"); break; case _2: aux.setNivel_consensuado("2"); break; case _3: aux.setNivel_consensuado("3"); break; case _4: aux.setNivel_consensuado("4"); break; case _5: aux.setNivel_consensuado("5"); break; case _5m: aux.setNivel_consensuado("5+"); break; case _6a: aux.setNivel_consensuado("6a"); break; case _6am: aux.setNivel_consensuado("6a+"); break; case _6b: aux.setNivel_consensuado("6b"); break; case _6bm: aux.setNivel_consensuado("6b+"); break; case _6c: aux.setNivel_consensuado("6c"); break; case _6cm: aux.setNivel_consensuado("6c+"); break; case _7a: aux.setNivel_consensuado("7a"); break; case _7am: aux.setNivel_consensuado("7a+"); break; case _7b: aux.setNivel_consensuado("7b"); break; case _7bm: aux.setNivel_consensuado("7b+"); break; case _7c: aux.setNivel_consensuado("7c"); break; case _7cm: aux.setNivel_consensuado("7c+"); break; case _8a: aux.setNivel_consensuado("8a"); break; case _8am: aux.setNivel_consensuado("8a+"); break; case _8b: aux.setNivel_consensuado("8b"); break; case _8bm: aux.setNivel_consensuado("8b+"); break; case _8c: aux.setNivel_consensuado("8c"); break; case _8cm: aux.setNivel_consensuado("8c+"); break; case _9a: aux.setNivel_consensuado("9a"); break; case _9am: aux.setNivel_consensuado("9a+"); break; case _9b: aux.setNivel_consensuado("9b"); break; case _9bm: aux.setNivel_consensuado("9b+"); break; case _9c: aux.setNivel_consensuado("9c"); break; case _9cm: aux.setNivel_consensuado("9c+"); break; default: break; } return aux; } }