Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:usdot-jpo-ode/jpo-conflictvisual…
Browse files Browse the repository at this point in the history
…izer into 2024-03-19-bug-fixes
  • Loading branch information
John-Wiens committed Apr 9, 2024
2 parents e7571f2 + 4c2f73f commit c4be7b4
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 28 deletions.
2 changes: 1 addition & 1 deletion jpo-conflictmonitor
Submodule jpo-conflictmonitor updated from b82d8b to 10e4d6
3 changes: 1 addition & 2 deletions jpo-conflictvisualizer-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>23.0.6</version>
<!-- <version>20.0.3</version> -->
<version>21.1.2</version> <!-- Version should match Keycloak Version specified in Conflict Monitor Dockerfile -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,8 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableWebMvc
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package us.dot.its.jpo.ode.api.accessors.events.BsmEvent;

import java.time.Instant;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;

import com.fasterxml.jackson.databind.ObjectMapper;

import us.dot.its.jpo.conflictmonitor.monitor.models.bsm.BsmEvent;
import us.dot.its.jpo.geojsonconverter.DateJsonMapper;

import org.springframework.data.domain.Sort;

import org.springframework.data.mongodb.core.aggregation.Aggregation;
Expand All @@ -29,6 +34,8 @@ public class BsmEventRepositoryImpl implements BsmEventRepository {

private String collectionName = "CmBsmEvents";

private ObjectMapper mapper = DateJsonMapper.getInstance();

@Autowired
ConflictMonitorApiProperties props;

Expand All @@ -38,23 +45,22 @@ public Query getQuery(Integer intersectionID, Long startTime, Long endTime, bool
if (intersectionID != null) {
query.addCriteria(Criteria.where("intersectionID").is(intersectionID));
}
Date startTimeDate = new Date(0);
Date endTimeDate = new Date();

if (startTime != null) {
startTimeDate = new Date(startTime);
if (startTime == null) {
startTime = 0L;
}
if (endTime != null) {
endTimeDate = new Date(endTime);
if (endTime == null) {
endTime = Instant.now().toEpochMilli();
}

query.addCriteria(Criteria.where("recordGeneratedAt").gte(startTimeDate).lte(endTimeDate));
query.addCriteria(Criteria.where("startingBsmTimestamp").gte(startTime).lte(endTime));
if (latest) {
query.with(Sort.by(Sort.Direction.DESC, "recordGeneratedAt"));
query.with(Sort.by(Sort.Direction.DESC, "startingBsmTimestamp"));
query.limit(1);
}else{
query.limit(props.getMaximumResponseSize());
}
query.fields().exclude("recordGeneratedAt");
return query;
}

Expand All @@ -63,7 +69,17 @@ public long getQueryResultCount(Query query) {
}

public List<BsmEvent> find(Query query) {
return mongoTemplate.find(query, BsmEvent.class, collectionName);

List<Map> documents = mongoTemplate.find(query, Map.class, collectionName);
List<BsmEvent> convertedList = new ArrayList<>();

for(Map document : documents){
document.remove("_id");
BsmEvent event = mapper.convertValue(document, BsmEvent.class);
convertedList.add(event);
}

return convertedList;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import java.util.List;
import java.util.Map;

import jakarta.ws.rs.core.Response;
import javax.ws.rs.core.Response;

// import jakarta.ws.rs.core.Response;

import org.apache.commons.lang3.exception.ExceptionUtils;
import org.keycloak.KeycloakPrincipal;
Expand Down Expand Up @@ -170,19 +172,20 @@ public ResponseEntity<List<UserCreationRequest>> findUserCreationRequests(



System.out.println("Requesting New User Creation");
logger.info("Requesting New User Creation");
Response response = keycloak.realm(realm).users().create(user);
System.out.println(response.getStatus() + " " + response.getHeaders());
logger.info(response.getStatus() + " " + response.getHeaders());

if (response.getStatus() == 201) {
System.out.println("User Creation Successful");
logger.info("User Creation Successful");

Query query = userRepo.getQuery(null, null, null, newUserCreationRequest.getEmail(), null, null, null);
userRepo.delete(query);

return ResponseEntity.status(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
.body(newUserCreationRequest.toString());
}else{

return ResponseEntity.status(HttpStatus.NOT_MODIFIED).contentType(MediaType.APPLICATION_JSON)
.body(newUserCreationRequest.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ public void testGetQuery() {
assertThat(query.getQueryObject().get("intersectionID")).isEqualTo(intersectionID);


// Assert Start and End Time
Document queryTimeDocument = (Document)query.getQueryObject().get("recordGeneratedAt");
assertThat(queryTimeDocument.getDate("$gte")).isEqualTo(new Date(startTime));
assertThat(queryTimeDocument.getDate("$lte")).isEqualTo(new Date(endTime));
// // Assert Start and End Time
Document queryTimeDocument = (Document)query.getQueryObject().get("startingBsmTimestamp");
assertThat(queryTimeDocument.getLong("$gte")).isEqualTo(startTime);
assertThat(queryTimeDocument.getLong("$lte")).isEqualTo(endTime);


// Assert sorting and limit
assertThat(query.getSortObject().keySet().contains("recordGeneratedAt")).isTrue();
assertThat(query.getSortObject().get("recordGeneratedAt")).isEqualTo(-1);
// // Assert sorting and limit
assertThat(query.getSortObject().keySet().contains("startingBsmTimestamp")).isTrue();
assertThat(query.getSortObject().get("startingBsmTimestamp")).isEqualTo(-1);
assertThat(query.getLimit()).isEqualTo(1);

}
Expand Down

0 comments on commit c4be7b4

Please sign in to comment.