Skip to content

Commit

Permalink
Merge pull request #321 from BBMRI-ERIC/fix/email_timestamp
Browse files Browse the repository at this point in the history
fix(notifications): set timestamp for sent emails
  • Loading branch information
RadovanTomik committed May 21, 2024
2 parents e81b68a + 6077fae commit 2bee2a9
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

import eu.bbmri_eric.negotiator.configuration.state_machine.resource.NegotiationResourceState;
import eu.bbmri_eric.negotiator.database.model.Negotiation;
import eu.bbmri_eric.negotiator.database.model.Resource;
import eu.bbmri_eric.negotiator.database.repository.NegotiationRepository;
import eu.bbmri_eric.negotiator.service.UserNotificationService;
import jakarta.transaction.Transactional;
import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.action.Action;
import org.springframework.stereotype.Component;
Expand All @@ -23,17 +25,13 @@ public class InitializeStateForResourceAction implements Action<String, String>

@Override
@Transactional
@Async
public void execute(StateContext<String, String> context) {
String negotiationId = context.getMessage().getHeaders().get("negotiationId", String.class);
Negotiation negotiation = negotiationRepository.findDetailedById(negotiationId).orElseThrow();
Negotiation finalNegotiation = negotiation;
negotiation
.getResources()
.forEach(
resource ->
finalNegotiation.setStateForResource(
resource.getSourceId(), NegotiationResourceState.SUBMITTED));
negotiation = negotiationRepository.save(negotiation);
for (Resource resource : negotiation.getResources()) {
negotiation.setStateForResource(resource.getSourceId(), NegotiationResourceState.SUBMITTED);
}
userNotificationService.notifyRepresentativesAboutNewNegotiation(negotiation);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import eu.bbmri_eric.negotiator.database.repository.NotificationEmailRepository;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.regex.Pattern;
import lombok.NonNull;
Expand Down Expand Up @@ -84,7 +85,11 @@ public void sendEmail(Person recipient, String subject, String mailBody) {
}
NotificationEmail notificationEmail =
notificationEmailRepository.save(
NotificationEmail.builder().recipient(recipient).message(mailBody).build());
NotificationEmail.builder()
.recipient(recipient)
.message(mailBody)
.sentAt(LocalDateTime.now())
.build());
try {
javaMailSender.send(mimeMessage);
} catch (MailSendException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,8 @@ private Notification buildNewNotification(
.recipient(representative)
.message(message)
.build();
new_notification.setModifiedDate(LocalDateTime.now());
new_notification.setCreationDate(LocalDateTime.now());
return new_notification;
}

Expand All @@ -335,6 +337,7 @@ private void sendOutNotificationEmails(@NonNull Set<Person> recipients) {
private void markNotificationsAsEmailSent(@NonNull List<Notification> notifications) {
for (Notification notification : notifications) {
notification.setEmailStatus(NotificationEmailStatus.EMAIL_SENT);
notification.setModifiedDate(LocalDateTime.now());
notificationRepository.save(notification);
}
}
Expand Down

0 comments on commit 2bee2a9

Please sign in to comment.