Skip to content
Snippets Groups Projects
Commit 4c300516 authored by Mirco Nasuti's avatar Mirco Nasuti
Browse files

refactoring in progress : return all variables from JSON

parent 3007ddc5
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,9 @@ public class PersistenceConfiguration {
@Autowired
DataSource dataSource;
@Autowired
DataSource variablesDatasource;
@Bean
@DependsOn("flyway")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
......
......@@ -6,6 +6,8 @@ package eu.hbp.mip.controllers;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonReader;
import eu.hbp.mip.model.Value;
import eu.hbp.mip.model.Variable;
......@@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
......@@ -30,6 +33,8 @@ public class VariablesApi {
private static final String VARIABLES_FILE = "data/variables.json";
private static LinkedList<Variable> variables;
@ApiOperation(value = "Get variables", response = Variable.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
......@@ -44,7 +49,29 @@ public class VariablesApi {
) {
LOGGER.info("Get variables");
return ResponseEntity.ok(null); // TODO : findall
InputStream is = Variable.class.getClassLoader().getResourceAsStream(VARIABLES_FILE);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
JsonObject root = new Gson().fromJson(new JsonReader(br), JsonObject.class);
variables = new LinkedList<>();
extractVariablesRecursive(root);
return ResponseEntity.ok(variables);
}
private static void extractVariablesRecursive(JsonObject element) {
if (element.has("groups")){
for(JsonElement child : element.getAsJsonArray("groups")) {
extractVariablesRecursive(child.getAsJsonObject());
}
}
if (element.has("variables")){
for (JsonElement var : element.getAsJsonArray("variables")){
variables.add(new Gson().fromJson(var, Variable.class));
}
}
}
@ApiOperation(value = "Get a variable", response = Variable.class)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment