package ec.edu.espe.movilidad.MovilidadWS.Controller; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUsuarioConPerfiles; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario.IServiceUzyTUsuario; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; import java.util.Set; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; @RestController @CrossOrigin(origins = "*") @RequestMapping(V1_API_VERSION + "/usuario") public class UzyTUsuarioController { private final IServiceUzyTUsuario serviceUzyTUsuario; public UzyTUsuarioController(IServiceUzyTUsuario serviceUzyTUsuario) { this.serviceUzyTUsuario = serviceUzyTUsuario; } @GetMapping("/exampleFindId/{id}") public DtoUzyTUsuario ListarPorID(@PathVariable Long id) { return serviceUzyTUsuario.ListarPorID(id); } @GetMapping("/getAll") public List<DtoUzyTUsuario> ListarRegistros() { return serviceUzyTUsuario.ListarRegistros(); } @DeleteMapping("/eliminar_perfil/{uzytusuario_id}/{uzytperfil_id}") public DtoUsuarioConPerfiles eliminarPerfilDeUsuario( @PathVariable("uzytusuario_id") @NotNull Long uzytusuario_id, @PathVariable("uzytperfil_id") @NotNull Long uzytperfil_id) { return serviceUzyTUsuario.eliminarPerfilDeUsuario(uzytusuario_id, uzytperfil_id); } @GetMapping("/perfilUsuario/{uzytusuario_id}") public Set<DtoUzyTPerfil> findPerfilesByUsuarioId(@PathVariable Long uzytusuario_id) { return serviceUzyTUsuario.findPerfilesByUsuarioId(uzytusuario_id); } @PostMapping("/asignar_perfil/{uzytusuario_id}/{uzytperfil_id}") public DtoUsuarioConPerfiles asignarPerfilAUsuario( @PathVariable("uzytusuario_id") Long uzytusuario_id, @PathVariable("uzytperfil_id") Long uzytperfil_id) { return serviceUzyTUsuario.asignarPerfilAUsuario(uzytusuario_id, uzytperfil_id); } @GetMapping("/buscarUsuario") public List<DtoUzyTUsuario> buscarUsuarios(@RequestParam String usuario) { return serviceUzyTUsuario.findByUsuario(usuario); } @PostMapping("/guardar") public DtoUzyTUsuario guardar(@Valid @RequestBody DtoUzyTUsuario dtoUzyTUsuario) { return serviceUzyTUsuario.guardar(dtoUzyTUsuario); } @PutMapping("/editar/{id}") public DtoUzyTUsuario editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTUsuario dtoUzyTUsuario) { return serviceUzyTUsuario.editar(id, dtoUzyTUsuario); } @DeleteMapping("/eliminar/{id}") public ResponseEntity<String> eliminar(@PathVariable Long id) { boolean eliminado = serviceUzyTUsuario.eliminar(id); if (eliminado) { return ResponseEntity.ok("El registro se eliminĂ³ exitosamente."); } else { return ResponseEntity.notFound().build(); } } }