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

make filters work

parent 5be76e14
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,6 @@ import com.github.slugify.Slugify;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import eu.hbp.mip.configuration.SecurityConfiguration;
import eu.hbp.mip.model.Filter;
import eu.hbp.mip.model.Model;
import eu.hbp.mip.model.User;
import eu.hbp.mip.model.Variable;
......@@ -218,10 +217,6 @@ public class ModelsApi {
Collection<String> yAxisVarsColl = new LinkedHashSet<>(yAxisVars);
model.getConfig().setyAxisVariables(new LinkedList<>(yAxisVarsColl));
List<Filter> fltrs = queryRepository.findOne(model.getQuery().getId()).getFilters();
Collection<Filter> fltrsColl = new LinkedHashSet<>(fltrs);
model.getQuery().setFilters(new LinkedList<>(fltrsColl));
return new ResponseEntity<>(HttpStatus.OK).ok(getModelWithDataset(model));
}
......
......@@ -23,7 +23,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -59,13 +61,15 @@ public class RequestsApi {
List<String> variables = new LinkedList<>();
List<String> groupings = new LinkedList<>();
List<String> covariables = new LinkedList<>();
List<String> filters = new LinkedList<>();
Gson gson = new Gson();
JsonObject q = gson.fromJson(gson.toJson(query, Query.class), JsonObject.class);
JsonArray queryVars = q.getAsJsonArray("variables");
JsonArray queryGrps = q.getAsJsonArray("grouping");
JsonArray queryCoVars = q.getAsJsonArray("covariables");
JsonArray queryVars = q.getAsJsonArray("variables") != null ? q.getAsJsonArray("variables") : new JsonArray();
JsonArray queryGrps = q.getAsJsonArray("grouping") != null ? q.getAsJsonArray("grouping") : new JsonArray();
JsonArray queryCoVars = q.getAsJsonArray("covariables") != null ? q.getAsJsonArray("covariables") : new JsonArray();
JsonArray queryfltrs = q.getAsJsonArray("filter") != null ? q.getAsJsonArray("filter") : new JsonArray();
List<String> allVars = new LinkedList<>();
......@@ -87,11 +91,18 @@ public class RequestsApi {
allVars.add(varCode);
}
for (JsonElement var : queryfltrs) {
String fltCode = var.getAsJsonObject().get("code").getAsString();
filters.add(fltCode);
allVars.add(fltCode);
}
dataset.addProperty("code", code);
dataset.addProperty("date", date.getTime());
dataset.add("variable", gson.toJsonTree(variables));
dataset.add("grouping", gson.toJsonTree(groupings));
dataset.add("header", gson.toJsonTree(covariables));
dataset.add("filter", gson.toJsonTree(filters));
dataset.add("data", new DataUtil(scienceJdbcTemplate, scienceMainTable).getDataFromVariables(allVars));
return ResponseEntity.ok(new Gson().fromJson(dataset, Object.class));
......
/**
* Created by mirco on 04.12.15.
*/
package eu.hbp.mip.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import javax.persistence.*;
import java.util.LinkedList;
import java.util.List;
@Entity
@Table(name = "`filter`")
@ApiModel
@JsonIgnoreProperties(value = { "id" })
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Filter {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id = null;
@ManyToOne
private Variable variable = null;
private String operator = null;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "filter_values", joinColumns = @JoinColumn(name = "filter_id"))
private List<String> values = new LinkedList<>();
public Filter() {
/*
* Empty constructor is needed by Hibernate
*/
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Variable getVariable() {
return variable;
}
public void setVariable(Variable variable) {
this.variable = variable;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public List<String> getValues() {
return values;
}
public void setValues(List<String> values) {
this.values = values;
}
}
......@@ -47,8 +47,12 @@ public class Query {
nullable = false, updatable = false) })
private List<Variable> grouping = new LinkedList<>();
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Filter> filters = new LinkedList<>();
@ManyToMany
@JoinTable(name = "query_filter", joinColumns = {
@JoinColumn(name = "query_id", nullable = false, updatable = false) },
inverseJoinColumns = { @JoinColumn(name = "code",
nullable = false, updatable = false) })
private List<Variable> filters = new LinkedList<>();
@Column(columnDefinition = "text", name = "sql_filter")
private String sqlFilter = null;
......@@ -99,15 +103,15 @@ public class Query {
}
public List<Filter> getFilters() {
@JsonProperty("filter")
public List<Variable> getFilters() {
return filters;
}
public void setFilters(List<Filter> filters) {
public void setFilters(List<Variable> filters) {
this.filters = filters;
}
public String getRequest() {
return request;
}
......
package eu.hbp.mip.repositories;
import eu.hbp.mip.model.Filter;
import org.springframework.data.repository.CrudRepository;
/**
* Created by mirco on 11.07.16.
*/
public interface FilterRepository extends CrudRepository<Filter, Long> {
}
ALTER TABLE query ADD COLUMN sql_filter text;
\ No newline at end of file
ALTER TABLE query ADD COLUMN sql_filter text;
ALTER TABLE query_filter DROP COLUMN filters_id;
DROP TABLE filter_values, filter;
ALTER TABLE query_filter ADD COLUMN code character varying(255) NOT NULL;
ALTER TABLE ONLY query_filter
ADD CONSTRAINT fk_1 FOREIGN KEY (query_id) REFERENCES query(id);
\ No newline at end of file
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