Se agregan 2 campos a la tabla de usuario, el code departamento y el code campus

parent d48852c7
...@@ -51,7 +51,7 @@ public class UzyTUsuarioController { ...@@ -51,7 +51,7 @@ public class UzyTUsuarioController {
} }
@GetMapping("/buscarUsuario") @GetMapping("/buscarUsuario")
public List<DtoUzyTUsuario> buscarUsuarios(@RequestParam(required = false) String usuario) { public List<DtoUzyTUsuario> buscarUsuarios(@RequestParam String usuario) {
return serviceUzyTUsuario.findByUsuario(usuario); return serviceUzyTUsuario.findByUsuario(usuario);
} }
......
...@@ -2,48 +2,79 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto; ...@@ -2,48 +2,79 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.Email; import javax.validation.constraints.*;
import javax.validation.constraints.NotNull; import java.time.LocalDate;
import javax.validation.constraints.Positive;
import java.util.Date;
import java.util.Set; import java.util.Set;
@Data @Data
public class DtoUzyTUsuario { public class DtoUzyTUsuario {
@Positive @Positive(message = "El campo uzytusuario_id debe ser un número positivo")
private Long uzytusuario_id; private Long uzytusuario_id;
@Size(max = 20)
private String uzytusuario_cc; private String uzytusuario_cc;
@Size(max = 100)
private String uzytusuario_clave; private String uzytusuario_clave;
@Size(max = 60)
private String uzytusuario_nombres; private String uzytusuario_nombres;
@NotNull @NotNull(message = "El campo de uzytusuario_apellidos no puede ser nulo")
@Size(max = 60)
private String uzytusuario_apellidos; private String uzytusuario_apellidos;
@Email(message = "El campo 'uzytusuario_email' debe ser una dirección de correo electrónico válida: usuario@example.com") @Email(message = "El campo 'uzytusuario_email' debe ser una dirección de correo electrónico válida: usuario@example.com")
@Size(max = 100)
private String uzytusuario_email; private String uzytusuario_email;
private Date uzytusuario_fecharegistro; @PastOrPresent(message = "La fecha de registro debe ser anterior o igual a la fecha actual")
//PastOrPresent PASADO O PRESENTE EN EL INGRESO DE LAS FECHAS
private LocalDate uzytusuario_fecharegistro; //LocalDate Se guarda la fecha sin el tiempo
@Size(max = 1)
@Pattern(regexp = "[AI]", message = "El campo uzytusuario_estado solo puede ser A=Activo; I= Inactivo")
private String uzytusuario_estado; private String uzytusuario_estado;
private Integer uzytusuario_mail_sinformul; private Integer uzytusuario_mail_sinformul;
private Integer uzytusuario_mail_incompletos; private Integer uzytusuario_mail_incompletos;
@Size(max = 30)
private String uzytusuario_tipo_doc; private String uzytusuario_tipo_doc;
@Size(max = 30)
private String uzytusuario_cod_senescyt; private String uzytusuario_cod_senescyt;
private Date uzytusuario_fecha_act_micuenta; @PastOrPresent(message = "La fecha de registro debe ser anterior o igual a la fecha actual")
//PastOrPresent PASADO O PRESENTE EN EL INGRESO DE LAS FECHAS
private LocalDate uzytusuario_fecha_act_micuenta;
@Size(max = 6)
private String uzytusuario_hexadecimalid; private String uzytusuario_hexadecimalid;
@Size(max = 25)
private String uzytusuario_tratamiento; private String uzytusuario_tratamiento;
private Integer uzytusuario_modificacion; private Integer uzytusuario_modificacion;
@Size(max = 1)
@Pattern(regexp = "[ADCE]", message = "El campo uzytusuario_tipo_user solo puede ser A=Aspirante; D=Docente de Nivelación; C=Coordinador Logístico; E=Evaluadores")
private String uzytusuario_tipo_user; private String uzytusuario_tipo_user;
@Email(message = "El campo 'uzytusuario_email' debe ser una dirección de correo electrónico válida: usuario@espe.edu.ec") @Email(message = "El campo 'uzytusuario_email' debe ser una dirección de correo electrónico válida: usuario@espe.edu.ec")
@Size(max = 100)
private String uzytusuario_email_institucional; private String uzytusuario_email_institucional;
@Size(max = 10)
private String uzytusuario_telefono_fijo; private String uzytusuario_telefono_fijo;
@Size(max = 10)
private String uzytusuario_telefono_celular; private String uzytusuario_telefono_celular;
@Size(max = 9)
private String spriden_id; private String spriden_id;
@Positive @Positive
private Integer spriden_pidm; private Integer spriden_pidm;
@Size(max = 200)
private String uzytusuario_clave_tmp; private String uzytusuario_clave_tmp;
@Size(max = 20)
private String spbpers_name_prefix; private String spbpers_name_prefix;
@Size(max = 1, message = "El campo spbpers_sex debe tener exactamente un carácter")
@Pattern(regexp = "[MF]", message = "El campo spbpers_sex solo puede ser 'M' para Masculino o 'F' para Femenino")
private String spbpers_sex; private String spbpers_sex;
@Size(max = 40)
private String uzytusuario_campus; private String uzytusuario_campus;
@Size(max = 20)
private String uzytusuario_departamento; private String uzytusuario_departamento;
@Size(max = 250)
private String uzytusuario_foto; private String uzytusuario_foto;
@Size(max = 3)
private String uzytusuario_CAMPUS_CODE;
@Size(max = 4)
private String uzytusuario_DEPARTAMENTO_CODE;
private Set<DtoUzyTPerfil> perfiles; private Set<DtoUzyTPerfil> perfiles;
} }
...@@ -8,6 +8,7 @@ import org.springframework.http.HttpStatus; ...@@ -8,6 +8,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError; import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -51,6 +52,13 @@ public class GlobalExceptionHandler { ...@@ -51,6 +52,13 @@ public class GlobalExceptionHandler {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ha ocurrido un error inesperado en el servidor: -> " + ex.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ha ocurrido un error inesperado en el servidor: -> " + ex.getMessage());
} }
//Excepción cuando falte el valor de una path variable
@ExceptionHandler(MissingPathVariableException.class)
public ResponseEntity<String> handleMissingPathVariableException(MissingPathVariableException ex) {
String mensajeError = "Falta el valor del path variable: " + ex.getVariableName();
return new ResponseEntity<>(mensajeError, HttpStatus.BAD_REQUEST);
}
@ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)
public ResponseEntity<String> handleGenericException(Exception ex) { public ResponseEntity<String> handleGenericException(Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ha ocurrido un error INTERNO en el servidor: -> " + ex.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ha ocurrido un error INTERNO en el servidor: -> " + ex.getMessage());
......
...@@ -6,7 +6,8 @@ import lombok.Getter; ...@@ -6,7 +6,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import java.util.Date; import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.Set; import java.util.Set;
...@@ -22,25 +23,26 @@ public class ModelUzyTUsuario { ...@@ -22,25 +23,26 @@ public class ModelUzyTUsuario {
@Column(name = "uzytusuario_id") @Column(name = "uzytusuario_id")
private Long uzytusuario_id; private Long uzytusuario_id;
@Column(name = "uzytusuario_cc") @Size(max = 20)
@Column(name = "uzytusuario_cc", length = 20)
private String uzytusuario_cc; private String uzytusuario_cc;
@Size(max = 100)
@Column(name = "uzytusuario_clave") @Column(name = "uzytusuario_clave", length = 100)
private String uzytusuario_clave; private String uzytusuario_clave;
@Size(max = 60)
@Column(name = "uzytusuario_nombres") @Column(name = "uzytusuario_nombres", length = 60)
private String uzytusuario_nombres; private String uzytusuario_nombres;
@Size(max = 60)
@Column(name = "uzytusuario_apellidos", nullable = false) @Column(name = "uzytusuario_apellidos", nullable = false, length = 60)
private String uzytusuario_apellidos; private String uzytusuario_apellidos;
@Size(max = 100)
@Column(name = "uzytusuario_email") @Column(name = "uzytusuario_email", length = 100)
private String uzytusuario_email; private String uzytusuario_email;
@Column(name = "uzytusuario_fecharegistro") @Column(name = "uzytusuario_fecharegistro")
private Date fechaRegistro; private LocalDate uzytusuario_fecharegistro;
@Size(max = 1)
@Column(name = "uzytusuario_estado") @Column(name = "uzytusuario_estado", length = 1)
private String uzytusuario_estado; private String uzytusuario_estado;
@Column(name = "uzytusuario_mail_sinformul") @Column(name = "uzytusuario_mail_sinformul")
...@@ -48,60 +50,67 @@ public class ModelUzyTUsuario { ...@@ -48,60 +50,67 @@ public class ModelUzyTUsuario {
@Column(name = "uzytusuario_mail_incompletos") @Column(name = "uzytusuario_mail_incompletos")
private Integer uzytusuario_mail_incompletos; private Integer uzytusuario_mail_incompletos;
@Size(max = 30)
@Column(name = "uzytusuario_tipo_doc") @Column(name = "uzytusuario_tipo_doc", length = 30)
private String uzytusuario_tipo_doc; private String uzytusuario_tipo_doc;
@Size(max = 30)
@Column(name = "uzytusuario_cod_senescyt") @Column(name = "uzytusuario_cod_senescyt", length = 30)
private String uzytusuario_cod_senescyt; private String uzytusuario_cod_senescyt;
@Column(name = "uzytusuario_fecha_act_micuenta") @Column(name = "uzytusuario_fecha_act_micuenta")
private Date uzytusuario_fecha_act_micuenta; private LocalDate uzytusuario_fecha_act_micuenta;
@Size(max = 6)
@Column(name = "uzytusuario_hexadecimalid") @Column(name = "uzytusuario_hexadecimalid", length = 6)
private String uzytusuario_hexadecimalid; private String uzytusuario_hexadecimalid;
@Size(max = 25)
@Column(name = "uzytusuario_tratamiento") @Column(name = "uzytusuario_tratamiento", length = 25)
private String uzytusuario_tratamiento; private String uzytusuario_tratamiento;
@Column(name = "uzytusuario_modificacion") @Column(name = "uzytusuario_modificacion")
private Integer uzytusuario_modificacion; private Integer uzytusuario_modificacion;
@Size(max = 1)
@Column(name = "uzytusuario_tipo_user") @Column(name = "uzytusuario_tipo_user", length = 1)
private String uzytusuario_tipo_user; private String uzytusuario_tipo_user;
@Size(max = 100)
@Column(name = "uzytusuario_email_institucional") @Column(name = "uzytusuario_email_institucional", length = 100)
private String uzytusuario_email_institucional; private String uzytusuario_email_institucional;
@Size(max = 10)
@Column(name = "uzytusuario_telefono_fijo") @Column(name = "uzytusuario_telefono_fijo", length = 10)
private String uzytusuario_telefono_fijo; private String uzytusuario_telefono_fijo;
@Size(max = 10)
@Column(name = "uzytusuario_telefono_celular") @Column(name = "uzytusuario_telefono_celular", length = 10)
private String uzytusuario_telefono_celular; private String uzytusuario_telefono_celular;
@Size(max = 9)
@Column(name = "spriden_id") @Column(name = "spriden_id", length = 9)
private String spriden_id; private String spriden_id;
@Column(name = "spriden_pidm") @Column(name = "spriden_pidm")
private Integer spriden_pidm; private Integer spriden_pidm;
@Size(max = 200)
@Column(name = "uzytusuario_clave_tmp") @Column(name = "uzytusuario_clave_tmp", length = 200)
private String uzytusuario_clave_tmp; private String uzytusuario_clave_tmp;
@Size(max = 20)
@Column(name = "spbpers_name_prefix") @Column(name = "spbpers_name_prefix", length = 20)
private String spbpers_name_prefix; private String spbpers_name_prefix;
@Column(name = "spbpers_sex") @Size(max = 1)
@Column(name = "spbpers_sex", length = 1)
private String spbpers_sex; private String spbpers_sex;
@Size(max = 40)
@Column(name = "uzytusuario_campus") @Column(name = "uzytusuario_campus", length = 40)
private String uzytusuario_campus; private String uzytusuario_campus;
@Size(max = 20)
@Column(name = "uzytusuario_departamento") @Column(name = "uzytusuario_departamento", length = 20)
private String uzytusuario_departamento; private String uzytusuario_departamento;
@Size(max = 250)
@Column(name = "uzytusuario_foto") @Column(name = "uzytusuario_foto", length = 250)
private String uzytusuario_foto; private String uzytusuario_foto;
@Size(max = 3)
@Column(name = "uzytusuario_CAMPUS_CODE", length = 3)
private String uzytusuario_CAMPUS_CODE;
@Size(max = 4)
@Column(name = "uzytusuario_DEPARTAMENTO_CODE", length = 4)
private String uzytusuario_DEPARTAMENTO_CODE;
//RELACIÓN CON LA TABLA ANEXOSPR-TABLA HIJA //RELACIÓN CON LA TABLA ANEXOSPR-TABLA HIJA
......
...@@ -80,9 +80,6 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario { ...@@ -80,9 +80,6 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
@Override @Override
public DtoUzyTUsuario guardar(DtoUzyTUsuario dtoUzyTUsuario) { public DtoUzyTUsuario guardar(DtoUzyTUsuario dtoUzyTUsuario) {
if (dtoUzyTUsuario.getUzytusuario_apellidos() == null) {
throw new InvalidArgumentException("El apellido del usuario no puede ser nulo.");
}
try { try {
ModelUzyTUsuario entity = mapper.dtoToEntity(dtoUzyTUsuario); ModelUzyTUsuario entity = mapper.dtoToEntity(dtoUzyTUsuario);
ModelUzyTUsuario nuevoEntity = daoUzyTUsuario.save(entity); ModelUzyTUsuario nuevoEntity = daoUzyTUsuario.save(entity);
...@@ -112,7 +109,7 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario { ...@@ -112,7 +109,7 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
entity.setUzytusuario_email(dtoUzyTUsuario.getUzytusuario_email()); entity.setUzytusuario_email(dtoUzyTUsuario.getUzytusuario_email());
} }
if (dtoUzyTUsuario.getUzytusuario_fecharegistro() != null) { if (dtoUzyTUsuario.getUzytusuario_fecharegistro() != null) {
entity.setFechaRegistro(dtoUzyTUsuario.getUzytusuario_fecharegistro()); entity.setUzytusuario_fecharegistro(dtoUzyTUsuario.getUzytusuario_fecharegistro());
} }
if (dtoUzyTUsuario.getUzytusuario_estado() != null) { if (dtoUzyTUsuario.getUzytusuario_estado() != null) {
entity.setUzytusuario_estado(dtoUzyTUsuario.getUzytusuario_estado()); entity.setUzytusuario_estado(dtoUzyTUsuario.getUzytusuario_estado());
......
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