diff --git a/docker-compose.yml b/docker-compose.yml index 3df7be1..3849a64 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,8 @@ services: MAIL_USERNAME: CHANGE_ME MAIL_PASSWORD: CHANGE_ME + API_BASE_URL: ${API_BASE_URL:-http://localhost:8080} + SPRING_DATASOURCE_HIKARI_INITIALIZATION_FAIL_TIMEOUT: -1 depends_on: mysql: diff --git a/src/main/java/br/com/springnoobs/reminderapi/mail/service/EmailService.java b/src/main/java/br/com/springnoobs/reminderapi/mail/service/EmailService.java index 52c2404..80b423e 100644 --- a/src/main/java/br/com/springnoobs/reminderapi/mail/service/EmailService.java +++ b/src/main/java/br/com/springnoobs/reminderapi/mail/service/EmailService.java @@ -13,6 +13,7 @@ import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service @@ -27,6 +28,9 @@ public class EmailService { private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy").withZone(ZoneId.of("America/Sao_Paulo")); + @Value("${api.base-url}") + private String baseUrl; + public EmailService(MailEngine mailEngine, EmailSendFailureRepository emailSendFailureRepository) { this.mailEngine = mailEngine; this.emailSendFailureRepository = emailSendFailureRepository; @@ -39,7 +43,9 @@ public void send(Reminder reminder) { Contact contact = reminder.getUser().getContact(); - Map variables = buildEmailVariables(contact, reminder, "#"); + String disableUrl = baseUrl + "/reminders/" + reminder.getId() + "/disable-notifications"; + + Map variables = buildEmailVariables(contact, reminder, disableUrl); MimeMessage mimeMessage = mailEngine.createEmailMessage(variables); diff --git a/src/main/java/br/com/springnoobs/reminderapi/reminder/controller/ReminderController.java b/src/main/java/br/com/springnoobs/reminderapi/reminder/controller/ReminderController.java index 5a508f8..3757e44 100644 --- a/src/main/java/br/com/springnoobs/reminderapi/reminder/controller/ReminderController.java +++ b/src/main/java/br/com/springnoobs/reminderapi/reminder/controller/ReminderController.java @@ -57,6 +57,5 @@ public ResponseEntity delete(@PathVariable Long id) { public ResponseEntity disableEmail(@PathVariable Long id) throws SchedulerException { reminderService.disableReminderNotifications(id); return ResponseEntity.noContent().build(); - } } diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 1b8a90e..8310a08 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -7,4 +7,6 @@ spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.mail.host=localhost -spring.mail.port=2525 \ No newline at end of file +spring.mail.port=2525 + +api.base-url=http://localhost:8080 \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1ed8052..aa9d26a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -15,4 +15,6 @@ spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.quartz.job-store-type=jdbc -spring.quartz.jdbc.initialize-schema=always \ No newline at end of file +spring.quartz.jdbc.initialize-schema=always + +api.base.url=${API_BASE_URL:http://localhost:8080} \ No newline at end of file