From 10ae08e6b3e9bb23287b9e1553f203ca8346dd6b Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Tue, 8 Mar 2016 11:51:06 +0100 Subject: [PATCH] Handle workflow exceptions in a better way (still not that good) --- .../org/hbp/mip/controllers/WorkflowApi.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/hbp/mip/controllers/WorkflowApi.java b/src/main/java/org/hbp/mip/controllers/WorkflowApi.java index 1c4fba039..d08a37af7 100644 --- a/src/main/java/org/hbp/mip/controllers/WorkflowApi.java +++ b/src/main/java/org/hbp/mip/controllers/WorkflowApi.java @@ -5,6 +5,7 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,22 +31,26 @@ public class WorkflowApi { @RequestBody @ApiParam(value = "Model to create", required = true) String query ) throws Exception { - String results = ""; + StringBuilder results = new StringBuilder(); + int code = 0; if(algo.equals("glr")) { - results = sendPost("https://mip.humanbrainproject.eu/services/request", query); + code = sendPost("https://mip.humanbrainproject.eu/services/request", query, results); + if(code != 200){ + return new ResponseEntity<>(HttpStatus.valueOf(code)); + } } else if(algo.equals("anv")) { - results = ""; + results.append("not implemented"); } - return ResponseEntity.ok(results); + return ResponseEntity.ok(results.toString()); } - private static String sendPost(String url, String query) throws Exception { + private static int sendPost(String url, String query, StringBuilder resp) throws Exception { URL obj = new URL(url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); @@ -62,18 +67,22 @@ public class WorkflowApi { wr.flush(); wr.close(); - con.getResponseCode(); + int respCode = con.getResponseCode(); - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuilder response = new StringBuilder(); - - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); + if(respCode == 200) + { + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuilder response = new StringBuilder(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + resp.append(response.toString()); } - in.close(); - return response.toString(); + return respCode; } private static void allowInsecureConnection(HttpsURLConnection con) { -- GitLab