Se agregan servicio a Usuario, para asignarle los perfiles y buscar los perfiles asignados

parent 25a0de59
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTProvincia;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfil.IServiceUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfil.IServiceUzyTPerfil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario.IServiceUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario.IServiceUzyTUsuario;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -7,6 +8,7 @@ import org.springframework.http.ResponseEntity; ...@@ -7,6 +8,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Set;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
...@@ -19,8 +21,10 @@ public class UzyTUsuarioController { ...@@ -19,8 +21,10 @@ public class UzyTUsuarioController {
private final IServiceUzyTUsuario serviceUzyTUsuario; private final IServiceUzyTUsuario serviceUzyTUsuario;
public UzyTUsuarioController(IServiceUzyTUsuario serviceUzyTUsuario) { public UzyTUsuarioController(IServiceUzyTUsuario serviceUzyTUsuario) {
this.serviceUzyTUsuario = serviceUzyTUsuario; this.serviceUzyTUsuario = serviceUzyTUsuario;
} }
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
...@@ -33,6 +37,18 @@ public class UzyTUsuarioController { ...@@ -33,6 +37,18 @@ public class UzyTUsuarioController {
return new ResponseEntity<>(serviceUzyTUsuario.ListarRegistros(), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTUsuario.ListarRegistros(), HttpStatus.OK);
} }
@GetMapping("/perfilUsuario/{uzytusuario_id}")
public ResponseEntity<Set<DtoUzyTPerfil>> findPerfilesByUsuarioId(@PathVariable Long uzytusuario_id) {
return new ResponseEntity<>(serviceUzyTUsuario.findPerfilesByUsuarioId(uzytusuario_id), HttpStatus.OK);
}
@PostMapping("/asignar_perfil/{uzytusuario_id}/{uzytperfil_id}")
public void asignarPerfilAUsuario(@PathVariable("uzytusuario_id") Long uzytusuario_id,
@PathVariable("uzytperfil_id") Long uzytperfil_id) {
serviceUzyTUsuario.asignarPerfilAUsuario(uzytusuario_id, uzytperfil_id);
}
@GetMapping("/buscarUsuario") @GetMapping("/buscarUsuario")
public ResponseEntity<List<DtoUzyTUsuario>> buscarUsuarios(@RequestParam(required = false) String usuario) { public ResponseEntity<List<DtoUzyTUsuario>> buscarUsuarios(@RequestParam(required = false) String usuario) {
List<DtoUzyTUsuario> usuarios = serviceUzyTUsuario.findByUsuario(usuario); List<DtoUzyTUsuario> usuarios = serviceUzyTUsuario.findByUsuario(usuario);
......
package ec.edu.espe.movilidad.MovilidadWS.Dao; package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
@Repository @Repository
public interface DaoUzyTPerfil extends JpaRepository<ModelUzyTPerfil, Long> { public interface DaoUzyTPerfil extends JpaRepository<ModelUzyTPerfil, Long> {
//@Query("SELECT p.uzytusuarios FROM ModelUzyTPerfil p WHERE p.uzytusuario_id = :uzytperfilId")
//Set<ModelUzyTUsuario> findUsuariosByPerfilId(@Param("uzytperfilId") Long uzytperfilId);
} }
\ No newline at end of file
...@@ -3,8 +3,19 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao; ...@@ -3,8 +3,19 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuario; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuarioId; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuarioId;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
@Repository @Repository
public interface DaoUzyTPerfilUsuario extends JpaRepository<ModelUzyTPerfilUsuario, ModelUzyTPerfilUsuarioId> { public interface DaoUzyTPerfilUsuario extends JpaRepository<ModelUzyTPerfilUsuario, ModelUzyTPerfilUsuarioId> {
// @Query("SELECT pu FROM ModelUzyTPerfilUsuario pu WHERE pu.uzytusuario.uzytusuario_id = :uzytperfilId")
// Set<ModelUzyTPerfilUsuario> findByPerfilId(@Param("uzytperfilId") Long uzytperfilId);
//@Query("SELECT pu FROM ModelUzyTPerfilUsuario pu WHERE pu.uzytusuario.uzytusuario_id = :uzytusuarioId")
//Set<ModelUzyTPerfilUsuario> findByUsuarioId(@Param("uzytusuarioId") Long uzytusuarioId);
} }
\ No newline at end of file
package ec.edu.espe.movilidad.MovilidadWS.Dao; package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
...@@ -8,6 +9,7 @@ import org.springframework.stereotype.Repository; ...@@ -8,6 +9,7 @@ import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
@Repository @Repository
public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> { public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> {
...@@ -34,5 +36,7 @@ public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> { ...@@ -34,5 +36,7 @@ public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> {
ModelUzyTUsuario findByUsername(@Param("username") String username); ModelUzyTUsuario findByUsername(@Param("username") String username);
@Query("SELECT u.uzytperfils FROM ModelUzyTUsuario u WHERE u.uzytusuario_id = :uzytusuario_id")
Set<ModelUzyTPerfil> findPerfilesByUsuarioId(@Param("uzytusuario_id") Long uzytusuario_id);
} }
...@@ -2,10 +2,14 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto; ...@@ -2,10 +2,14 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data; import lombok.Data;
import java.util.Set;
@Data @Data
public class DtoUzyTPerfil { public class DtoUzyTPerfil {
private Long uzytperfil_id; private Long uzytperfil_id;
private String uzytperfil_nombre; private String uzytperfil_nombre;
private Set<DtoUzyTUsuario> usuarios;
} }
...@@ -2,6 +2,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto; ...@@ -2,6 +2,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.Set;
@Data @Data
public class DtoUzyTUsuario { public class DtoUzyTUsuario {
...@@ -32,4 +33,7 @@ public class DtoUzyTUsuario { ...@@ -32,4 +33,7 @@ public class DtoUzyTUsuario {
private String spbpers_sex; private String spbpers_sex;
private String uzytusuario_campus; private String uzytusuario_campus;
private String uzytusuario_departamento; private String uzytusuario_departamento;
private Set<DtoUzyTPerfil> perfiles;
} }
...@@ -5,6 +5,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil; ...@@ -5,6 +5,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
...@@ -32,4 +33,14 @@ public class UzyTPerfilMapper { ...@@ -32,4 +33,14 @@ public class UzyTPerfilMapper {
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
public Set<DtoUzyTPerfil> entitiesToDtosSet(Set<ModelUzyTPerfil> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toSet());
}
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario;
import java.util.List; import java.util.List;
import java.util.Set;
public interface IServiceUzyTUsuario { public interface IServiceUzyTUsuario {
...@@ -15,5 +17,9 @@ public interface IServiceUzyTUsuario { ...@@ -15,5 +17,9 @@ public interface IServiceUzyTUsuario {
DtoUzyTUsuario editar( Long id, DtoUzyTUsuario dtoUzyTUsuario); DtoUzyTUsuario editar( Long id, DtoUzyTUsuario dtoUzyTUsuario);
Set<DtoUzyTPerfil> findPerfilesByUsuarioId(Long uzytusuario_id);
void asignarPerfilAUsuario(Long uzytusuario_id, Long uzytperfil_id);
boolean eliminar(Long id); boolean eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException; import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTPerfilMapper;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTUsuarioMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTUsuarioMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
@Service @Service
public class ServiceUzyTUsuario implements IServiceUzyTUsuario{ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
private final DaoUzyTUsuario daoUzyTUsuario; private final DaoUzyTUsuario daoUzyTUsuario;
private final DaoUzyTPerfil daoUzyTPerfil;
private final UzyTUsuarioMapper mapper; private final UzyTUsuarioMapper mapper;
public ServiceUzyTUsuario(DaoUzyTUsuario daoUzyTUsuario, UzyTUsuarioMapper mapper) { private final UzyTPerfilMapper mapperPerfil;
public ServiceUzyTUsuario(DaoUzyTUsuario daoUzyTUsuario, DaoUzyTPerfil daoUzyTPerfil, UzyTUsuarioMapper mapper, UzyTPerfilMapper mapperPerfil) {
this.daoUzyTUsuario = daoUzyTUsuario; this.daoUzyTUsuario = daoUzyTUsuario;
this.daoUzyTPerfil = daoUzyTPerfil;
this.mapper = mapper; this.mapper = mapper;
this.mapperPerfil = mapperPerfil;
} }
...@@ -94,6 +105,15 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{ ...@@ -94,6 +105,15 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage()); throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage());
} }
} }
@Override
public Set<DtoUzyTPerfil> findPerfilesByUsuarioId(Long uzytusuario_id) {
Set<ModelUzyTPerfil> perfiles = daoUzyTUsuario.findPerfilesByUsuarioId(uzytusuario_id);
return mapperPerfil.entitiesToDtosSet(perfiles);
}
@Override @Override
public boolean eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTUsuario entity = daoUzyTUsuario.findById(id).orElse(null); ModelUzyTUsuario entity = daoUzyTUsuario.findById(id).orElse(null);
...@@ -103,4 +123,14 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{ ...@@ -103,4 +123,14 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
} }
return false; return false;
} }
@Override
public void asignarPerfilAUsuario(Long uzytusuario_id, Long uzytperfil_id) {
// Obtengo el usuario y perfil buscandolos por el ID
ModelUzyTUsuario usuario = daoUzyTUsuario.findById(uzytusuario_id).get();
ModelUzyTPerfil perfil = daoUzyTPerfil.findById(uzytperfil_id).get();
// Aquí asigno el perfil al usuario
usuario.getUzytperfils().add(perfil);
daoUzyTUsuario.save(usuario);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment