Implementar la consulta de un cliente con la siguiente casuística:
- Si el cliente es normal le debe listar las cuentas sin detalles de movimientos
- Si el cliente es premium le debe mostrar los detalles de la cuenta incluido los intereses
- Para la consulta de movimientos debe tener un método independiente para poder implementar una consulta de tipo reactiva
- Se debe validar el request del servicio con expresiones regulares considerando lo siguiente: el dni debe ser numérico con un máximo de 8 números; el correo debe estar validado con expresiones regulares de correo considerando que el subdominio debe poder tener mas de un punto (xxx@inetum.com.pe)
- Se debe escribir en el log el dni recibido el cual debe estar enmascarado los 4 primeros dígitos.
- Implementar la prueba unitaria
- Debe tener dos métodos de consulta uno POST(recibe el dni y correo por body) y otro GET(recibe el correo por query parameter y el dni por path parameter)
- La inyección de dependencia a la capa service y dao debe ser basada en constructor
- Se debe definir el contrato open api del servicio (opcional)
- Usar JPA para la consulta de base de datos
- Usar Lombok para la definición de todos los objetos de intercambio de datos (DTO)
- Definir la documentación del servicio con la anotación @Scheme
Usamos la versión :Gradle 7.4.2
gradle clean buildgradle bootRun- Esta aplicación ya contiene la BD embebida, es una H2, los registros ingresados se encuentran en el archivo schema.sql, no se recomienda editar este archivo.
- para ingresar a swagger ui deberá iniciar la aplicación y luego dirigirse a http://localhost:9091/inetum/evaluaciones/swagger-ui.html