Skip to content

Commit 3b7cab9

Browse files
authored
Change parameter to body in free style query (#162)
1 parent 7a8e9cd commit 3b7cab9

File tree

14 files changed

+393
-47
lines changed

14 files changed

+393
-47
lines changed

src/functionaltests/java/com/ericsson/ei/query/QueryAggregatedObjectsTestSteps.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public void perform_several_valid_freestyle_queries_on_created_Aggregated_object
175175
.addHeader("content-type", "application/json")
176176
.addHeader("Accept", "application/json")
177177
.setEndpoint(entryPoint)
178-
.addParam("request", query)
178+
.setBody(query)
179179
.performRequest();
180180

181181
LOGGER.debug("Response of /query RestApi, Status Code: " + response.getStatusCodeValue() +
@@ -210,7 +210,7 @@ public void perform_invalid_freestyle_query_on_created_aggregated_object() throw
210210
.addHeader("content-type", "application/json")
211211
.addHeader("Accept", "application/json")
212212
.setEndpoint(entryPoint)
213-
.addParam("request", queryAggrObj)
213+
.setBody(queryAggrObj)
214214
.performRequest();
215215

216216
String responseAsString = response.getBody().toString();
@@ -317,4 +317,4 @@ private boolean createDocumentInMongoDb(String databaseName, String collectionNa
317317
return mongoDBHandler.insertDocument(databaseName, collectionName, objToBeInserted);
318318
}
319319

320-
}
320+
}

src/main/java/com/ericsson/ei/controller/QueryAggregatedObjectController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
package com.ericsson.ei.controller;
33

4+
import com.ericsson.ei.controller.model.QueryResponse;
45
import org.springframework.http.ResponseEntity;
56
import org.springframework.web.bind.annotation.RequestMapping;
67
import org.springframework.web.bind.annotation.RequestMethod;

src/main/java/com/ericsson/ei/controller/QueryController.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11

22
package com.ericsson.ei.controller;
33

4+
import javax.validation.Valid;
5+
import com.ericsson.ei.controller.model.QueryBody;
46
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.RequestBody;
58
import org.springframework.web.bind.annotation.RequestMapping;
69
import org.springframework.web.bind.annotation.RequestMethod;
7-
import org.springframework.web.bind.annotation.RequestParam;
810
import org.springframework.web.bind.annotation.RestController;
911

1012

@@ -24,7 +26,8 @@ public interface QueryController {
2426
*/
2527
@RequestMapping(value = "", method = RequestMethod.POST)
2628
public ResponseEntity<?> updateQuery(
27-
@RequestParam
28-
String request);
29+
@Valid
30+
@RequestBody
31+
QueryBody queryBody);
2932

3033
}

src/main/java/com/ericsson/ei/controller/QueryControllerImpl.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,20 @@
1616
*/
1717
package com.ericsson.ei.controller;
1818

19+
import com.ericsson.ei.controller.model.QueryBody;
1920
import com.ericsson.ei.queryservice.ProcessQueryParams;
20-
import com.fasterxml.jackson.databind.ObjectMapper;
2121
import io.swagger.annotations.Api;
2222
import io.swagger.annotations.ApiOperation;
2323
import org.json.JSONArray;
24+
import org.json.JSONObject;
2425
import org.slf4j.Logger;
2526
import org.slf4j.LoggerFactory;
2627
import org.springframework.beans.factory.annotation.Autowired;
2728
import org.springframework.http.HttpStatus;
2829
import org.springframework.http.ResponseEntity;
2930
import org.springframework.stereotype.Component;
3031
import org.springframework.web.bind.annotation.CrossOrigin;
31-
import org.springframework.web.bind.annotation.RequestParam;
32+
import org.springframework.web.bind.annotation.RequestBody;
3233

3334
/**
3435
* This class represents the REST end-points for the query service. It can take
@@ -47,14 +48,20 @@ public class QueryControllerImpl implements QueryController {
4748
@Override
4849
@CrossOrigin
4950
@ApiOperation(value = "")
50-
public ResponseEntity<?> updateQuery(@RequestParam(value = "request") String request) {
51+
public ResponseEntity<?> updateQuery(@RequestBody final QueryBody body) {
5152
try {
52-
JSONArray result = processQueryParams.filterFormParam(new ObjectMapper().readTree(request));
53+
JSONObject criteria = new JSONObject(body.getCriteria().getAdditionalProperties());
54+
JSONObject options = null;
55+
if (body.getOptions() != null) {
56+
options = new JSONObject(body.getOptions().getAdditionalProperties());
57+
}
58+
59+
JSONArray result = processQueryParams.filterFormParam(criteria, options);
5360
return new ResponseEntity<>(result.toString(), HttpStatus.OK);
5461
} catch (Exception e) {
5562
String errorMessage = "Failed to extract data from the Aggregated Object using freestyle query. Error message:\n" + e.getMessage();
5663
LOGGER.error(errorMessage, e);
5764
return new ResponseEntity<>(errorMessage, HttpStatus.INTERNAL_SERVER_ERROR);
5865
}
5966
}
60-
}
67+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
package com.ericsson.ei.controller.model;
3+
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
7+
import com.fasterxml.jackson.annotation.JsonAnySetter;
8+
import com.fasterxml.jackson.annotation.JsonIgnore;
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
11+
import org.apache.commons.lang3.builder.EqualsBuilder;
12+
import org.apache.commons.lang3.builder.HashCodeBuilder;
13+
import org.apache.commons.lang3.builder.ToStringBuilder;
14+
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
@JsonPropertyOrder({
17+
18+
})
19+
public class Criteria {
20+
21+
@JsonIgnore
22+
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
23+
24+
@Override
25+
public String toString() {
26+
return ToStringBuilder.reflectionToString(this);
27+
}
28+
29+
@JsonAnyGetter
30+
public Map<String, Object> getAdditionalProperties() {
31+
return this.additionalProperties;
32+
}
33+
34+
@JsonAnySetter
35+
public void setAdditionalProperty(String name, Object value) {
36+
this.additionalProperties.put(name, value);
37+
}
38+
39+
@Override
40+
public int hashCode() {
41+
return new HashCodeBuilder().append(additionalProperties).toHashCode();
42+
}
43+
44+
@Override
45+
public boolean equals(Object other) {
46+
if (other == this) {
47+
return true;
48+
}
49+
if ((other instanceof Criteria) == false) {
50+
return false;
51+
}
52+
Criteria rhs = ((Criteria) other);
53+
return new EqualsBuilder().append(additionalProperties, rhs.additionalProperties).isEquals();
54+
}
55+
56+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
package com.ericsson.ei.controller.model;
3+
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
7+
import com.fasterxml.jackson.annotation.JsonAnySetter;
8+
import com.fasterxml.jackson.annotation.JsonIgnore;
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
11+
import org.apache.commons.lang3.builder.EqualsBuilder;
12+
import org.apache.commons.lang3.builder.HashCodeBuilder;
13+
import org.apache.commons.lang3.builder.ToStringBuilder;
14+
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
@JsonPropertyOrder({
17+
18+
})
19+
public class ListEventsJson {
20+
21+
@JsonIgnore
22+
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
23+
24+
@Override
25+
public String toString() {
26+
return ToStringBuilder.reflectionToString(this);
27+
}
28+
29+
@JsonAnyGetter
30+
public Map<String, Object> getAdditionalProperties() {
31+
return this.additionalProperties;
32+
}
33+
34+
@JsonAnySetter
35+
public void setAdditionalProperty(String name, Object value) {
36+
this.additionalProperties.put(name, value);
37+
}
38+
39+
@Override
40+
public int hashCode() {
41+
return new HashCodeBuilder().append(additionalProperties).toHashCode();
42+
}
43+
44+
@Override
45+
public boolean equals(Object other) {
46+
if (other == this) {
47+
return true;
48+
}
49+
if ((other instanceof ListEventsJson) == false) {
50+
return false;
51+
}
52+
ListEventsJson rhs = ((ListEventsJson) other);
53+
return new EqualsBuilder().append(additionalProperties, rhs.additionalProperties).isEquals();
54+
}
55+
56+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
package com.ericsson.ei.controller.model;
3+
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
7+
import com.fasterxml.jackson.annotation.JsonAnySetter;
8+
import com.fasterxml.jackson.annotation.JsonIgnore;
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
11+
import org.apache.commons.lang3.builder.EqualsBuilder;
12+
import org.apache.commons.lang3.builder.HashCodeBuilder;
13+
import org.apache.commons.lang3.builder.ToStringBuilder;
14+
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
@JsonPropertyOrder({
17+
18+
})
19+
public class ListRulesJson {
20+
21+
@JsonIgnore
22+
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
23+
24+
@Override
25+
public String toString() {
26+
return ToStringBuilder.reflectionToString(this);
27+
}
28+
29+
@JsonAnyGetter
30+
public Map<String, Object> getAdditionalProperties() {
31+
return this.additionalProperties;
32+
}
33+
34+
@JsonAnySetter
35+
public void setAdditionalProperty(String name, Object value) {
36+
this.additionalProperties.put(name, value);
37+
}
38+
39+
@Override
40+
public int hashCode() {
41+
return new HashCodeBuilder().append(additionalProperties).toHashCode();
42+
}
43+
44+
@Override
45+
public boolean equals(Object other) {
46+
if (other == this) {
47+
return true;
48+
}
49+
if ((other instanceof ListRulesJson) == false) {
50+
return false;
51+
}
52+
ListRulesJson rhs = ((ListRulesJson) other);
53+
return new EqualsBuilder().append(additionalProperties, rhs.additionalProperties).isEquals();
54+
}
55+
56+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
package com.ericsson.ei.controller.model;
3+
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
7+
import com.fasterxml.jackson.annotation.JsonAnySetter;
8+
import com.fasterxml.jackson.annotation.JsonIgnore;
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
11+
import org.apache.commons.lang3.builder.EqualsBuilder;
12+
import org.apache.commons.lang3.builder.HashCodeBuilder;
13+
import org.apache.commons.lang3.builder.ToStringBuilder;
14+
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
@JsonPropertyOrder({
17+
18+
})
19+
public class Options {
20+
21+
@JsonIgnore
22+
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
23+
24+
@Override
25+
public String toString() {
26+
return ToStringBuilder.reflectionToString(this);
27+
}
28+
29+
@JsonAnyGetter
30+
public Map<String, Object> getAdditionalProperties() {
31+
return this.additionalProperties;
32+
}
33+
34+
@JsonAnySetter
35+
public void setAdditionalProperty(String name, Object value) {
36+
this.additionalProperties.put(name, value);
37+
}
38+
39+
@Override
40+
public int hashCode() {
41+
return new HashCodeBuilder().append(additionalProperties).toHashCode();
42+
}
43+
44+
@Override
45+
public boolean equals(Object other) {
46+
if (other == this) {
47+
return true;
48+
}
49+
if ((other instanceof Options) == false) {
50+
return false;
51+
}
52+
Options rhs = ((Options) other);
53+
return new EqualsBuilder().append(additionalProperties, rhs.additionalProperties).isEquals();
54+
}
55+
56+
}

0 commit comments

Comments
 (0)