diff --git a/pom.xml b/pom.xml
index 74a45d4d..f3876c4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,12 +60,12 @@
io.github.oneteme.traceapi
traceapi-core
- 0.0.12
+ 0.0.15-SNAPSHOT
io.github.oneteme
jquery
- 1.0.1-SNAPSHOT
+ 3.0.0
org.springframework.boot
diff --git a/src/main/java/org/usf/trace/api/server/ApiController.java b/src/main/java/org/usf/trace/api/server/ApiController.java
index 7885c2fa..7ad8dc75 100644
--- a/src/main/java/org/usf/trace/api/server/ApiController.java
+++ b/src/main/java/org/usf/trace/api/server/ApiController.java
@@ -8,6 +8,7 @@
import static org.usf.traceapi.core.RemoteTraceSender.MAIN_ENDPOINT;
import static org.usf.traceapi.core.RemoteTraceSender.TRACE_ENDPOINT;
+import java.time.Instant;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -33,7 +34,7 @@
@RestController
@RequestMapping(value = TRACE_ENDPOINT, produces = APPLICATION_JSON_VALUE)
@RequiredArgsConstructor
-public class ApiController {
+public class ApiController {
private final RequestDao dao;
private final SessionQueueService queueService;
@@ -60,10 +61,17 @@ private ResponseEntity appendRequest(Session session){
}
@GetMapping(INCOMING_ENDPOINT)
- public List getIncomingRequestByIds(
+ public List getIncomingRequestByCriteria(
@RequestParam(defaultValue = "true", name = "lazy") boolean lazy,
- @RequestParam(required = false, name = "id") String[] id) { // without tree
- return dao.getIncomingRequestById(lazy, id);
+ @RequestParam(required = false, name = "id") String[] id,
+ @RequestParam(required = false, name = "name") String[] name,
+ @RequestParam(required = false, name = "env") String[] env,
+ @RequestParam(required = false, name = "port") String[] port,
+ @RequestParam(required = false, name = "start") Instant start,
+ @RequestParam(required = false, name = "end") Instant end ){ // without tree
+ FilterCriteria fc = new FilterCriteria(id,null,name,env,port,null,start,end);
+ System.out.println(fc.toString());
+ return dao.getIncomingRequestByCriteria(lazy,fc);
}
@GetMapping("incoming/request/{id}")
@@ -72,10 +80,16 @@ public IncomingRequest getIncomingRequestById(@PathVariable String id) { // with
}
@GetMapping(MAIN_ENDPOINT)
- public List getMainRequestByIds(
+ public List getMainRequestByCriteria(
@RequestParam(defaultValue = "true", name = "lazy") boolean lazy,
- @RequestParam(required = false, name = "id") String[] id) { // without tree
- return dao.getMainRequestById(lazy, id);
+ @RequestParam(required = false, name = "id") String[] id,
+ @RequestParam(required = false, name = "env") String[] env,
+ @RequestParam(required = false, name = "launchmode") String[] launchMode,
+ @RequestParam(required = false, name = "start") Instant start,
+ @RequestParam(required = false, name = "end") Instant end ) {
+
+ FilterCriteria fc = new FilterCriteria(null,id,null,env,null,launchMode,start,end);
+ return dao.getMainRequestByCriteria(lazy,fc);
}
@GetMapping("main/request/{id}")
diff --git a/src/main/java/org/usf/trace/api/server/CommonRequestQueryResolver.java b/src/main/java/org/usf/trace/api/server/CommonRequestQueryResolver.java
index 00b8ab56..9c38c007 100644
--- a/src/main/java/org/usf/trace/api/server/CommonRequestQueryResolver.java
+++ b/src/main/java/org/usf/trace/api/server/CommonRequestQueryResolver.java
@@ -6,6 +6,7 @@
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.usf.jquery.core.RequestQuery;
+import org.usf.jquery.core.RequestQueryBuilder;
import org.usf.jquery.web.RequestQueryParam;
import org.usf.jquery.web.RequestQueryParamResolver;
@@ -15,7 +16,7 @@ public class CommonRequestQueryResolver implements HandlerMethodArgumentResolver
@Override
public boolean supportsParameter(MethodParameter parameter) {
- return RequestQuery.class.isAssignableFrom(parameter.getNestedParameterType())
+ return RequestQueryBuilder.class.isAssignableFrom(parameter.getNestedParameterType())
&& parameter.hasParameterAnnotation(RequestQueryParam.class);
}
diff --git a/src/main/java/org/usf/trace/api/server/FilterCriteria.java b/src/main/java/org/usf/trace/api/server/FilterCriteria.java
new file mode 100644
index 00000000..fcb53de8
--- /dev/null
+++ b/src/main/java/org/usf/trace/api/server/FilterCriteria.java
@@ -0,0 +1,114 @@
+package org.usf.trace.api.server;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.time.Instant;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Objects;
+import java.util.stream.Stream;
+
+import static java.sql.Types.TIMESTAMP;
+import static java.sql.Types.VARCHAR;
+
+@Getter
+@Setter
+@AllArgsConstructor
+public class FilterCriteria {
+
+ private final String[] idIncoming; //
+
+ private final String[] idMain;
+ private final String[] name;
+ private final String[] env;
+ private final String[] port;
+
+ private final String[] launchMode;
+ private final Instant start;
+ private final Instant end;
+
+
+ public String toSql(Filters idIncomingColname,
+ Filters idMainColname,
+ Filters nameColname,
+ Filters envColname,
+ Filters portColname,
+ Filters launchModeColName,
+ Filters startColName,
+ Filters endColName,
+ Collection