Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 23bb86b9 authored by Julia StopCovid's avatar Julia StopCovid
Browse files

Merge branch 'fix-status-service' into 'feat-tests-integration'

fix: Status service

See merge request !28
parents 97580a72 9d63efef
No related branches found
No related tags found
2 merge requests!30feat: Tests d'integration,!28fix: Status service
......@@ -69,11 +69,12 @@ public class StatusControllerImpl implements IStatusController {
@Override
public ResponseEntity<StatusResponseDto> getStatus(StatusVo statusVo) {
Optional<ResponseEntity> entity = this.authRequestValidationService.validateRequestForAuth(statusVo,
new StatusMacValidator(this.cryptoServerClient),
new AuthenticatedRequestHandler());
log.info("~~~~~ Getting status ~~~~~");
if (entity.isPresent()) {
return entity.get();
} else {
......@@ -103,6 +104,7 @@ public class StatusControllerImpl implements IStatusController {
res = this.cryptoServerClient.validateMacEsr(request);
} catch (Exception e) {
log.error(e.getMessage());
res = false;
}
return res;
......@@ -134,7 +136,7 @@ public class StatusControllerImpl implements IStatusController {
// (now iterating through steps from section "If the ESR_REQUEST_A,i is valid, the server:", p11 of spec)
// Step #1: Set SRE with current epoch number
int latestNotifEpoch = record.getLastNotificationEpoch();
setLastEpochReqRegistration(record, epoch);
record.setLastStatusRequestEpoch(epoch);
// Step #2: "Score" was already processed during batch, simple lookup
boolean atRisk = record.isAtRisk();
......@@ -158,15 +160,21 @@ public class StatusControllerImpl implements IStatusController {
// Sum all risk scores for all the remaining epochs
Double totalRisk = epochsToKeep.stream()
.map(item -> item.getExpositionScores())
.map(EpochExposition::getExpositionScores)
.map(item -> item.stream().mapToDouble(Double::doubleValue).sum())
.reduce(0.0, (a, b) -> a + b);
atRisk = totalRisk > StatusControllerImpl.this.serverConfigurationService.getRiskThreshold();
record.setAtRisk(atRisk);
}
// Update record after modifications.
StatusControllerImpl.this.registrationService.saveRegistration(record);
// Include new EBIDs and ECCs for next M epochs
StatusResponseDto statusResponse = StatusResponseDto.builder().atRisk(atRisk).build();
StatusResponseDto statusResponse = StatusResponseDto.builder()
.atRisk(atRisk)
.message(MessageConstants.SUCCESSFUL_OPERATION.getValue())
.build();
includeEphemeralTuplesForNextMEpochs(statusResponse, record, 4);
return Optional.of(ResponseEntity.ok(statusResponse));
......@@ -211,12 +219,7 @@ public class StatusControllerImpl implements IStatusController {
}
statusResponse.setIdsForEpochs(this.epochKeyBundleDtoMapper.convert(tupleResponse.get().getTupleList()));
}
}
private void setLastEpochReqRegistration(Registration user, int epoch) {
user.setLastStatusRequestEpoch(epoch);
this.registrationService.saveRegistration(user);
}
}
......@@ -2,31 +2,34 @@ package fr.gouv.stopc.robertserver.ws.dto;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Singular;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class StatusResponseDto {
@NotNull
private boolean atRisk;
private long lastExposureTimeframe;
@NotBlank
private String message;
@NotNull
@Singular
@Size(min = 1)
private List<EpochKeyBundleDto> idsForEpochs;
@Singular("filteringAlgoConfig")
private List<AlgoConfigDto> filteringAlgoConfig;
}
package test.fr.gouv.stopc.robertserver.ws;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
......@@ -708,10 +709,10 @@ public class StatusControllerWsRestTest {
assertEquals(HttpStatus.OK, response.getStatusCode());
assertEquals(currentEpoch, reg.getLastStatusRequestEpoch());
assertEquals(false, response.getBody().isAtRisk());
assertFalse(response.getBody().isAtRisk());
assertNotNull(response.getBody().getIdsForEpochs());
assertEquals(true, reg.isAtRisk());
assertEquals(true, reg.isNotified());
assertFalse(reg.isAtRisk());
assertTrue(reg.isNotified());
verify(this.registrationService, times(1)).findById(idA);
verify(this.registrationService, times(1)).saveRegistration(reg);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment