Skip to content
Snippets Groups Projects

Security

Merged Jitka Viceníková requested to merge security into develop
Compare and Show latest version
13 files
+ 410
383
Compare changes
  • Side-by-side
  • Inline
Files
13
@@ -7,7 +7,7 @@ import cz.muni.pa165.exceptions.ResourceNotFoundException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
@@ -17,10 +17,7 @@ import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client.WebClientException;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
/**
* @author Michal Badin
@@ -30,12 +27,13 @@ public class ApplicationService {
private static final Logger log = LoggerFactory.getLogger(ApplicationService.class);
private static final String NOTIFICATION_MODULE_DOCKER = "http://notification:8083";
private static final String NOTIFICATION_MODULE_LOCALHOST = "http://localhost:8083";
private String NOTIFICATION_MODULE_URL;
private static final String NOTIFICATION_MODULE_URI_NEW = "/notification/application/new";
private static final String NOTIFICATION_MODULE_URI_STATUS = "/notification/application/status";
private static final List<String> NOTIFICATION_RECEIVERS = List.of("formula.team.management@gmail.com");
@Value("${notification.receivers}")
private final List<String> notificationReceivers = new ArrayList<>();
private final ApplicationRepository applicationRepository;
private final WebClient webClient;
private String NOTIFICATION_MODULE_URL;
@Autowired
public ApplicationService(ApplicationRepository applicationRepository, WebClient.Builder webClientBuilder) {
@@ -44,8 +42,7 @@ public class ApplicationService {
//if running in docker, modules cannot communicate through localhost
if (System.getenv("DOCKER") != null) {
NOTIFICATION_MODULE_URL = NOTIFICATION_MODULE_DOCKER;
}
else {
} else {
NOTIFICATION_MODULE_URL = NOTIFICATION_MODULE_LOCALHOST;
}
this.webClient = webClientBuilder.baseUrl(NOTIFICATION_MODULE_URL).build();
@@ -63,8 +60,8 @@ public class ApplicationService {
var savedApplication = applicationRepository.save(application);
try {
sendPostRequest(savedApplication, NOTIFICATION_MODULE_URI_NEW, List.of(savedApplication.getEmail()));
} catch (WebClientException e) {
sendPostRequest(savedApplication, NOTIFICATION_MODULE_URI_NEW, notificationReceivers);
} catch (WebClientException e) {
log.debug(String.format("The notification module is not reachable on the URL: %s, exception %s", NOTIFICATION_MODULE_URL + NOTIFICATION_MODULE_URI_NEW, e));
}
@@ -90,7 +87,7 @@ public class ApplicationService {
if (savedApplication.getStatus() != ApplicationStatusEnum.PENDING) {
try {
sendPostRequest(savedApplication, NOTIFICATION_MODULE_URI_STATUS, NOTIFICATION_RECEIVERS);
sendPostRequest(savedApplication, NOTIFICATION_MODULE_URI_STATUS, List.of(savedApplication.getEmail()));
} catch (WebClientException e) {
log.debug(String.format("The notification module is not reachable on the URL: %s, exception %s", NOTIFICATION_MODULE_URL + NOTIFICATION_MODULE_URI_STATUS, e));
}
Loading