Mejoras en entidades - K3152 - Wyse Ezequiel#9
Open
Ezewyse wants to merge 3 commits intodds-utn:mainfrom
Open
Conversation
…Se modificaron los Services acorde a estas nuevas entidades, y se agrego un evaluadorAlertas para validar las condiciones que cumple el clima
…enerarYEnviarEmail para soportar DTOs
…anejar Ubicacion y CondicionesClimaticas, y ademas correcciones menores.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cambios realizados:
Se agrego la entidad Alerta, esto encapsula la generación de Alertas.
Se modifico Clima, ahora Ubicación y CondicionesClimaticas son objetos, cada clase manejara sus responsabilidades (Single responsability Principle de los SOLID), además si se agregan parámetros nuevos de condiciones climáticas, no afectan Clima.
Se modifico el repositorio de Clima para adaptarse a estas dos nuevas entidades.
Se adapto ClimaService para convertir estas entidades en DTOs.
Cambios en AlertasService:
Se agrego EvaluadorAlertas, que libera la responsabilidad de validación a AlertasServices (Siguiendo el Single responsability Principle de SOLID).
Las condiciones de alerta implementan TipoAlerta como interfaz, esto permite agregar nuevas condiciones sin modificar el código existente, por ejemplo, si necesito agregar la velocidad del viento, puedo crear una nueva clase que implemente TipoAlerta. Aplica el principio Open-Closed de SOLID.
Los valores hardcodeados de temperatura y humedad ahora se obtienen con @value desde application.properties. Esto hace que sea mas mantenible, desde el archivo de configuración puedo cambiar estos valores sin tocar el código.
El método generarYEnviarEmail ahora trabaja con EmailDTO, y no con instancias de Email, además se incorporó EmailSenderAdapter, que desacopla EmailService del envío de emails, cumpliendo con el principio de inversión de Dependencias.
Se agrego EmailDTO para no trabajar con instancias de Email, sino que con data transfer objects.
El método crearEmail() dentro de EmailService ahora recibe DTOs en lugar de instancias de Email (se modificó también el EmailController ya que recibía y enviaba Emails y no EmailDTOs).
Se implemento un patrón Adapter: EmailSenderAdapter así puedo cambiar de biblioteca para enviar de emails si es que el día de mañana quiero hacerlo (agregue una clase “Simple” para enviar emails). Modifique el método Enviar() dentro de Email para el adapter.
Modifique LoguearEmailsPendientes() y obtenerEmails() para aceptar DTOs.