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 {
}
@GetMapping("/buscarUsuario")
public List<DtoUzyTUsuario> buscarUsuarios(@RequestParam(required = false) String usuario) {
public List<DtoUzyTUsuario> buscarUsuarios(@RequestParam String usuario) {
return serviceUzyTUsuario.findByUsuario(usuario);
}
......
......@@ -2,48 +2,79 @@ package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.util.Date;
import javax.validation.constraints.*;
import java.time.LocalDate;
import java.util.Set;
@Data
public class DtoUzyTUsuario {
@Positive
@Positive(message = "El campo uzytusuario_id debe ser un número positivo")
private Long uzytusuario_id;
@Size(max = 20)
private String uzytusuario_cc;
@Size(max = 100)
private String uzytusuario_clave;
@Size(max = 60)
private String uzytusuario_nombres;
@NotNull
@NotNull(message = "El campo de uzytusuario_apellidos no puede ser nulo")
@Size(max = 60)
private String uzytusuario_apellidos;
@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 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 Integer uzytusuario_mail_sinformul;
private Integer uzytusuario_mail_incompletos;
@Size(max = 30)
private String uzytusuario_tipo_doc;
@Size(max = 30)
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;
@Size(max = 25)
private String uzytusuario_tratamiento;
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;
@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;
@Size(max = 10)
private String uzytusuario_telefono_fijo;
@Size(max = 10)
private String uzytusuario_telefono_celular;
@Size(max = 9)
private String spriden_id;
@Positive
private Integer spriden_pidm;
@Size(max = 200)
private String uzytusuario_clave_tmp;
@Size(max = 20)
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;
@Size(max = 40)
private String uzytusuario_campus;
@Size(max = 20)
private String uzytusuario_departamento;
@Size(max = 250)
private String uzytusuario_foto;
@Size(max = 3)
private String uzytusuario_CAMPUS_CODE;
@Size(max = 4)
private String uzytusuario_DEPARTAMENTO_CODE;
private Set<DtoUzyTPerfil> perfiles;
}
......@@ -8,6 +8,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.http.ResponseEntity;
......@@ -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());
}
//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)
public ResponseEntity<String> handleGenericException(Exception ex) {
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;
import lombok.Setter;
import javax.persistence.*;
import java.util.Date;
import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.util.LinkedHashSet;
import java.util.Set;
......@@ -22,25 +23,26 @@ public class ModelUzyTUsuario {
@Column(name = "uzytusuario_id")
private Long uzytusuario_id;
@Column(name = "uzytusuario_cc")
@Size(max = 20)
@Column(name = "uzytusuario_cc", length = 20)
private String uzytusuario_cc;
@Column(name = "uzytusuario_clave")
@Size(max = 100)
@Column(name = "uzytusuario_clave", length = 100)
private String uzytusuario_clave;
@Column(name = "uzytusuario_nombres")
@Size(max = 60)
@Column(name = "uzytusuario_nombres", length = 60)
private String uzytusuario_nombres;
@Column(name = "uzytusuario_apellidos", nullable = false)
@Size(max = 60)
@Column(name = "uzytusuario_apellidos", nullable = false, length = 60)
private String uzytusuario_apellidos;
@Column(name = "uzytusuario_email")
@Size(max = 100)
@Column(name = "uzytusuario_email", length = 100)
private String uzytusuario_email;
@Column(name = "uzytusuario_fecharegistro")
private Date fechaRegistro;
@Column(name = "uzytusuario_estado")
private LocalDate uzytusuario_fecharegistro;
@Size(max = 1)
@Column(name = "uzytusuario_estado", length = 1)
private String uzytusuario_estado;
@Column(name = "uzytusuario_mail_sinformul")
......@@ -48,60 +50,67 @@ public class ModelUzyTUsuario {
@Column(name = "uzytusuario_mail_incompletos")
private Integer uzytusuario_mail_incompletos;
@Column(name = "uzytusuario_tipo_doc")
@Size(max = 30)
@Column(name = "uzytusuario_tipo_doc", length = 30)
private String uzytusuario_tipo_doc;
@Column(name = "uzytusuario_cod_senescyt")
@Size(max = 30)
@Column(name = "uzytusuario_cod_senescyt", length = 30)
private String uzytusuario_cod_senescyt;
@Column(name = "uzytusuario_fecha_act_micuenta")
private Date uzytusuario_fecha_act_micuenta;
@Column(name = "uzytusuario_hexadecimalid")
private LocalDate uzytusuario_fecha_act_micuenta;
@Size(max = 6)
@Column(name = "uzytusuario_hexadecimalid", length = 6)
private String uzytusuario_hexadecimalid;
@Column(name = "uzytusuario_tratamiento")
@Size(max = 25)
@Column(name = "uzytusuario_tratamiento", length = 25)
private String uzytusuario_tratamiento;
@Column(name = "uzytusuario_modificacion")
private Integer uzytusuario_modificacion;
@Column(name = "uzytusuario_tipo_user")
@Size(max = 1)
@Column(name = "uzytusuario_tipo_user", length = 1)
private String uzytusuario_tipo_user;
@Column(name = "uzytusuario_email_institucional")
@Size(max = 100)
@Column(name = "uzytusuario_email_institucional", length = 100)
private String uzytusuario_email_institucional;
@Column(name = "uzytusuario_telefono_fijo")
@Size(max = 10)
@Column(name = "uzytusuario_telefono_fijo", length = 10)
private String uzytusuario_telefono_fijo;
@Column(name = "uzytusuario_telefono_celular")
@Size(max = 10)
@Column(name = "uzytusuario_telefono_celular", length = 10)
private String uzytusuario_telefono_celular;
@Column(name = "spriden_id")
@Size(max = 9)
@Column(name = "spriden_id", length = 9)
private String spriden_id;
@Column(name = "spriden_pidm")
private Integer spriden_pidm;
@Column(name = "uzytusuario_clave_tmp")
@Size(max = 200)
@Column(name = "uzytusuario_clave_tmp", length = 200)
private String uzytusuario_clave_tmp;
@Column(name = "spbpers_name_prefix")
@Size(max = 20)
@Column(name = "spbpers_name_prefix", length = 20)
private String spbpers_name_prefix;
@Column(name = "spbpers_sex")
@Size(max = 1)
@Column(name = "spbpers_sex", length = 1)
private String spbpers_sex;
@Column(name = "uzytusuario_campus")
@Size(max = 40)
@Column(name = "uzytusuario_campus", length = 40)
private String uzytusuario_campus;
@Column(name = "uzytusuario_departamento")
@Size(max = 20)
@Column(name = "uzytusuario_departamento", length = 20)
private String uzytusuario_departamento;
@Column(name = "uzytusuario_foto")
@Size(max = 250)
@Column(name = "uzytusuario_foto", length = 250)
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
......
......@@ -80,9 +80,6 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
@Override
public DtoUzyTUsuario guardar(DtoUzyTUsuario dtoUzyTUsuario) {
if (dtoUzyTUsuario.getUzytusuario_apellidos() == null) {
throw new InvalidArgumentException("El apellido del usuario no puede ser nulo.");
}
try {
ModelUzyTUsuario entity = mapper.dtoToEntity(dtoUzyTUsuario);
ModelUzyTUsuario nuevoEntity = daoUzyTUsuario.save(entity);
......@@ -112,7 +109,7 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
entity.setUzytusuario_email(dtoUzyTUsuario.getUzytusuario_email());
}
if (dtoUzyTUsuario.getUzytusuario_fecharegistro() != null) {
entity.setFechaRegistro(dtoUzyTUsuario.getUzytusuario_fecharegistro());
entity.setUzytusuario_fecharegistro(dtoUzyTUsuario.getUzytusuario_fecharegistro());
}
if (dtoUzyTUsuario.getUzytusuario_estado() != null) {
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