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

parent 25a0de59
package ec.edu.espe.movilidad.MovilidadWS.Controller;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......
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.Service.UzyTUsuario.IServiceUzyTUsuario;
import org.springframework.http.HttpStatus;
......@@ -7,6 +8,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
......@@ -19,8 +21,10 @@ public class UzyTUsuarioController {
private final IServiceUzyTUsuario serviceUzyTUsuario;
public UzyTUsuarioController(IServiceUzyTUsuario serviceUzyTUsuario) {
this.serviceUzyTUsuario = serviceUzyTUsuario;
}
@GetMapping("/exampleFindId/{id}")
......@@ -33,6 +37,18 @@ public class UzyTUsuarioController {
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")
public ResponseEntity<List<DtoUzyTUsuario>> buscarUsuarios(@RequestParam(required = false) String usuario) {
List<DtoUzyTUsuario> usuarios = serviceUzyTUsuario.findByUsuario(usuario);
......
package ec.edu.espe.movilidad.MovilidadWS.Dao;
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.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
@Repository
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;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfilUsuarioId;
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 java.util.List;
import java.util.Set;
@Repository
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;
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.Query;
......@@ -8,6 +9,7 @@ import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@Repository
public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> {
......@@ -34,5 +36,7 @@ public interface DaoUzyTUsuario extends JpaRepository<ModelUzyTUsuario, Long> {
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;
import lombok.Data;
import java.util.Set;
@Data
public class DtoUzyTPerfil {
private Long uzytperfil_id;
private String uzytperfil_nombre;
private Set<DtoUzyTUsuario> usuarios;
}
......@@ -2,6 +2,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
import java.util.Set;
@Data
public class DtoUzyTUsuario {
......@@ -32,4 +33,7 @@ public class DtoUzyTUsuario {
private String spbpers_sex;
private String uzytusuario_campus;
private String uzytusuario_departamento;
private Set<DtoUzyTPerfil> perfiles;
}
......@@ -5,6 +5,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.modelmapper.ModelMapper;
......@@ -32,4 +33,14 @@ public class UzyTPerfilMapper {
.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;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario;
import java.util.List;
import java.util.Set;
public interface IServiceUzyTUsuario {
......@@ -15,5 +17,9 @@ public interface IServiceUzyTUsuario {
DtoUzyTUsuario editar( Long id, DtoUzyTUsuario dtoUzyTUsuario);
Set<DtoUzyTPerfil> findPerfilesByUsuarioId(Long uzytusuario_id);
void asignarPerfilAUsuario(Long uzytusuario_id, Long uzytperfil_id);
boolean eliminar(Long id);
}
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.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario;
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.Model.ModelUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@Service
public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
private final DaoUzyTUsuario daoUzyTUsuario;
private final DaoUzyTPerfil daoUzyTPerfil;
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.daoUzyTPerfil = daoUzyTPerfil;
this.mapper = mapper;
this.mapperPerfil = mapperPerfil;
}
......@@ -94,6 +105,15 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
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
public boolean eliminar(Long id) {
ModelUzyTUsuario entity = daoUzyTUsuario.findById(id).orElse(null);
......@@ -103,4 +123,14 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario{
}
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