Skip to content

Commit 65cd0fa

Browse files
authored
Merge pull request #13 from ctlab/migrate-converters-update-ui
Hotfixes for request/response stability
2 parents 9b5e5c7 + b07fd47 commit 65cd0fa

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

src/main/java/ru/itmo/ctlab/hict/hict_server/MainVerticle.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import io.vertx.core.Promise;
3535
import io.vertx.core.Vertx;
3636
import io.vertx.core.http.HttpServerOptions;
37+
import io.vertx.core.json.Json;
3738
import io.vertx.core.json.JsonArray;
3839
import io.vertx.core.json.JsonObject;
3940
import io.vertx.core.logging.SLF4JLogDelegateFactory;
@@ -61,6 +62,7 @@
6162
import java.nio.file.Path;
6263
import java.util.ArrayList;
6364
import java.util.List;
65+
import java.util.Map;
6466
import java.util.concurrent.BrokenBarrierException;
6567
import java.util.concurrent.CyclicBarrier;
6668

@@ -187,8 +189,12 @@ public void start(final Promise<Void> startPromise) throws Exception {
187189

188190
router.route().failureHandler(ctx -> {
189191
log.error("An exception was caught at router top-level", ctx.failure());
190-
ctx.response().end(
191-
ctx.failure().getMessage());
192+
final var message = ctx.failure() != null && ctx.failure().getMessage() != null
193+
? ctx.failure().getMessage()
194+
: "Request failed";
195+
ctx.response()
196+
.putHeader("content-type", "application/json")
197+
.end(Json.encode(Map.of("error", message)));
192198
});
193199

194200
log.info("Configuring router");

src/main/java/ru/itmo/ctlab/hict/hict_server/handlers/fileop/FileOpHandlersHolder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ public void addHandlersToRouter(final @NotNull Router router) {
9494

9595
map.put("TileStatisticHolder", TileStatisticHolder.newDefaultStatisticHolder(chunkedFile.getResolutions().length));
9696

97-
ctx.response().end(Json.encode(generateOpenFileResponse(chunkedFile)));
97+
ctx.response()
98+
.putHeader("content-type", "application/json")
99+
.end(Json.encode(generateOpenFileResponse(chunkedFile)));
98100
});
99101

100102
router.post("/attach").blockingHandler(ctx -> {

src/main/java/ru/itmo/ctlab/hict/hict_server/handlers/info/InfoHandlersHolder.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@ public void addHandlersToRouter(final @NotNull Router router) {
2626
router.get("/version").handler(ctx -> {
2727
final var version = readVersion();
2828
final var webuiVersion = readWebUiVersion();
29-
ctx.response().setStatusCode(200).end(Json.encode(Map.of(
30-
"version", version,
31-
"webuiVersion", webuiVersion
32-
)));
29+
ctx.response()
30+
.putHeader("content-type", "application/json")
31+
.setStatusCode(200)
32+
.end(Json.encode(Map.of(
33+
"version", version,
34+
"webuiVersion", webuiVersion
35+
)));
3336
});
3437
}
3538

src/main/java/ru/itmo/ctlab/hict/hict_server/handlers/tiles/TileHandlersHolder.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ public void addHandlersToRouter(final @NotNull Router router) {
8383
return;
8484
}
8585
final var options = visualizationOptionsWrapper.getSimpleVisualizationOptions();
86-
ctx.response().setStatusCode(200).end(Json.encode(VisualizationOptionsDTO.fromEntity(options, chunkedFile)));
86+
ctx.response()
87+
.putHeader("content-type", "application/json")
88+
.setStatusCode(200)
89+
.end(Json.encode(VisualizationOptionsDTO.fromEntity(options, chunkedFile)));
8790
});
8891

8992
router.post("/get_visualization_options").blockingHandler(ctx -> {
@@ -102,7 +105,10 @@ public void addHandlersToRouter(final @NotNull Router router) {
102105
return;
103106
}
104107
final var options = visualizationOptionsWrapper.getSimpleVisualizationOptions();
105-
ctx.response().setStatusCode(200).end(Json.encode(VisualizationOptionsDTO.fromEntity(options, chunkedFile)));
108+
ctx.response()
109+
.putHeader("content-type", "application/json")
110+
.setStatusCode(200)
111+
.end(Json.encode(VisualizationOptionsDTO.fromEntity(options, chunkedFile)));
106112
});
107113

108114
router.post("/tiles/reload").blockingHandler(ctx -> {

0 commit comments

Comments
 (0)