diff --git a/src/main/java/iudx/rs/proxy/apiserver/ApiServerVerticle.java b/src/main/java/iudx/rs/proxy/apiserver/ApiServerVerticle.java index c79fdaf..e425b16 100644 --- a/src/main/java/iudx/rs/proxy/apiserver/ApiServerVerticle.java +++ b/src/main/java/iudx/rs/proxy/apiserver/ApiServerVerticle.java @@ -23,7 +23,11 @@ import static iudx.rs.proxy.common.ResponseUrn.BACKING_SERVICE_FORMAT_URN; import static iudx.rs.proxy.common.ResponseUrn.INVALID_PARAM_URN; import static iudx.rs.proxy.common.ResponseUrn.INVALID_TEMPORAL_PARAM_URN; - +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import io.netty.handler.codec.http.HttpConstants; import io.netty.handler.codec.http.QueryStringDecoder; import io.vertx.core.AbstractVerticle; @@ -41,6 +45,7 @@ import io.vertx.ext.web.RoutingContext; import io.vertx.ext.web.handler.BodyHandler; import io.vertx.ext.web.handler.CorsHandler; +import io.vertx.serviceproxy.ServiceException; import iudx.rs.proxy.apiserver.exceptions.DxRuntimeException; import iudx.rs.proxy.apiserver.handlers.AuthHandler; import iudx.rs.proxy.apiserver.handlers.FailureHandler; @@ -54,11 +59,6 @@ import iudx.rs.proxy.common.ResponseUrn; import iudx.rs.proxy.database.DatabaseService; import iudx.rs.proxy.metering.MeteringService; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; public class ApiServerVerticle extends AbstractVerticle { @@ -282,6 +282,7 @@ private void executeSearchQuery( handleSuccessResponse(response, ResponseType.Ok.getCode(), handler.result().toString()); } else if (handler.failed()) { LOGGER.error("Fail: Search Fail"); + LOGGER.debug(handler instanceof ServiceException); processBackendResponse(response, handler.cause().getMessage()); } }); @@ -345,9 +346,10 @@ private void processBackendResponse(HttpServerResponse response, String failureM LOGGER.debug("Info : " + failureMessage); try { JsonObject json = new JsonObject(failureMessage); - int type = json.getInteger(JSON_TYPE); - HttpStatusCode status = HttpStatusCode.getByValue(type); - String urnTitle = json.getString(JSON_TITLE); + String type = json.getString(JSON_TYPE); + int status=json.getInteger("status"); + HttpStatusCode httpStatus = HttpStatusCode.getByValue(status); + String urnTitle = type; ResponseUrn urn; if (urnTitle != null) { urn = ResponseUrn.fromCode(urnTitle); @@ -357,8 +359,8 @@ private void processBackendResponse(HttpServerResponse response, String failureM // return urn in body response .putHeader(CONTENT_TYPE, APPLICATION_JSON) - .setStatusCode(type) - .end(generateResponse(status, urn).toString()); + .setStatusCode(status) + .end(generateResponse(httpStatus, urn).toString()); } catch (DecodeException ex) { LOGGER.error("ERROR : Expecting Json from backend service [ jsonFormattingException ]"); handleResponse(response, HttpStatusCode.BAD_REQUEST, BACKING_SERVICE_FORMAT_URN); diff --git a/src/main/java/iudx/rs/proxy/authenticator/AuthenticationVerticle.java b/src/main/java/iudx/rs/proxy/authenticator/AuthenticationVerticle.java index 2c1123c..77b87a2 100644 --- a/src/main/java/iudx/rs/proxy/authenticator/AuthenticationVerticle.java +++ b/src/main/java/iudx/rs/proxy/authenticator/AuthenticationVerticle.java @@ -1,6 +1,6 @@ package iudx.rs.proxy.authenticator; -import static iudx.rs.proxy.common.Constants.CACHE_SERVICE_ADDRESS; +import static iudx.rs.proxy.common.Constants.*; import io.vertx.core.AbstractVerticle; import io.vertx.core.Future; @@ -23,15 +23,15 @@ * *
The Authentication Verticle implementation in the the IUDX Resource Server exposes the {@link - * iudx.rs.proxy.authenticator.AuthenticationService} over the Vert.x Event Bus. + *
+ * The Authentication Verticle implementation in the the IUDX Resource Server exposes the
+ * {@link iudx.rs.proxy.authenticator.AuthenticationService} over the Vert.x Event Bus.
*
* @version 1.0
* @since 2020-05-31
*/
public class AuthenticationVerticle extends AbstractVerticle {
- private static final String AUTH_SERVICE_ADDRESS = "iudx.rs.proxy.auth.service";
private static final Logger LOGGER = LogManager.getLogger(AuthenticationVerticle.class);
private AuthenticationService jwtAuthenticationService;
private ServiceBinder binder;
diff --git a/src/main/java/iudx/rs/proxy/database/example/postgres/Constants.java b/src/main/java/iudx/rs/proxy/database/example/postgres/Constants.java
index 82398f1..e3ce78f 100644
--- a/src/main/java/iudx/rs/proxy/database/example/postgres/Constants.java
+++ b/src/main/java/iudx/rs/proxy/database/example/postgres/Constants.java
@@ -14,11 +14,11 @@ public class Constants {
public static final String SEARCH_TYPE = "searchType";
public static final String TIME_REL = "timerel";
public static final String TIME = "time";
- public static final String END_TIME = "endTime";
+ public static final String END_TIME = "endtime";
public static final String ATTRS = "attrs";
public static final String BEFORE = "before";
public static final String AFTER = "after";
- public static final String ATTR_QUERY = "attr_query";
+ public static final String ATTR_QUERY = "attr-query";
public static final String ATTRIBUTE = "attribute";
public static final String OPERATOR = "operator";
public static final String VALUE = "value";
@@ -31,7 +31,7 @@ public class Constants {
// SQL
public static String PSQL_TABLE_EXISTS_QUERY =
"SELECT EXISTS ( SELECT FROM pg_tables WHERE schemaname='public' AND tablename='$1');";
- public static String PSQL_SELECT_QUERY = "SELECT $1 FROM $$";
- public static String PSQL_TEMPORAL_CONDITION = " WHERE time BETWEEN '$2' and '$3'";
+ public static String PSQL_SELECT_QUERY = "SELECT $1 FROM $$ WHERE id='$2'";
+ public static String PSQL_TEMPORAL_CONDITION = "observationdatetime BETWEEN '$2' and '$3'";
public static String PSQL_ATTR_CONDITION = "$4 $op $5";
}
diff --git a/src/main/java/iudx/rs/proxy/database/example/postgres/PostgresServiceImpl.java b/src/main/java/iudx/rs/proxy/database/example/postgres/PostgresServiceImpl.java
index 1a41b82..f762165 100644
--- a/src/main/java/iudx/rs/proxy/database/example/postgres/PostgresServiceImpl.java
+++ b/src/main/java/iudx/rs/proxy/database/example/postgres/PostgresServiceImpl.java
@@ -1,39 +1,15 @@
package iudx.rs.proxy.database.example.postgres;
-import static iudx.rs.proxy.database.example.postgres.Constants.AFTER;
-import static iudx.rs.proxy.database.example.postgres.Constants.ATTRS;
-import static iudx.rs.proxy.database.example.postgres.Constants.BEFORE;
-import static iudx.rs.proxy.database.example.postgres.Constants.DATABASE_IP;
-import static iudx.rs.proxy.database.example.postgres.Constants.DATABASE_NAME;
-import static iudx.rs.proxy.database.example.postgres.Constants.DATABASE_PASSWORD;
-import static iudx.rs.proxy.database.example.postgres.Constants.DATABASE_PORT;
-import static iudx.rs.proxy.database.example.postgres.Constants.DATABASE_USERNAME;
-import static iudx.rs.proxy.database.example.postgres.Constants.END_TIME;
-import static iudx.rs.proxy.database.example.postgres.Constants.ID;
-import static iudx.rs.proxy.database.example.postgres.Constants.POOL_SIZE;
-import static iudx.rs.proxy.database.example.postgres.Constants.PSQL_SELECT_QUERY;
-import static iudx.rs.proxy.database.example.postgres.Constants.PSQL_TABLE_EXISTS_QUERY;
-import static iudx.rs.proxy.database.example.postgres.Constants.PSQL_TEMPORAL_CONDITION;
-import static iudx.rs.proxy.database.example.postgres.Constants.PSQL_ATTR_CONDITION;
-import static iudx.rs.proxy.database.example.postgres.Constants.TIME;
-import static iudx.rs.proxy.database.example.postgres.Constants.TIME_REL;
-import static iudx.rs.proxy.database.example.postgres.Constants.SEARCH_TYPE;
-import static iudx.rs.proxy.database.example.postgres.Constants.TEMPORAL_SEARCH_REGEX;
-import static iudx.rs.proxy.database.example.postgres.Constants.GEOSEARCH_REGEX;
-import static iudx.rs.proxy.database.example.postgres.Constants.ATTRIBUTE_SEARCH_REGEX;
-import static iudx.rs.proxy.database.example.postgres.Constants.ATTR_QUERY;
-import static iudx.rs.proxy.database.example.postgres.Constants.ATTRIBUTE;
-import static iudx.rs.proxy.database.example.postgres.Constants.OPERATOR;
-import static iudx.rs.proxy.database.example.postgres.Constants.VALUE;
-
-import io.vertx.sqlclient.SqlResult;
-import iudx.rs.proxy.common.Response;
-import iudx.rs.proxy.common.ResponseUrn;
-import java.time.LocalDateTime;
+import static iudx.rs.proxy.database.example.postgres.Constants.*;
+import java.time.ZonedDateTime;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import org.apache.http.HttpStatus;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.Handler;
@@ -46,15 +22,19 @@
import io.vertx.sqlclient.PoolOptions;
import io.vertx.sqlclient.Row;
import io.vertx.sqlclient.RowSet;
+import io.vertx.sqlclient.SqlResult;
+import iudx.rs.proxy.common.Response;
+import iudx.rs.proxy.common.ResponseUrn;
import iudx.rs.proxy.common.ServiceExceptionMessage;
import iudx.rs.proxy.database.DatabaseService;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
public class PostgresServiceImpl implements DatabaseService {
private final PgPool pgClient;
private boolean exists;
+ private Map