Skip to content

Commit

Permalink
Merge pull request #63 from booddu/master
Browse files Browse the repository at this point in the history
Add primitive type to ms.parameters
  • Loading branch information
booddu authored Apr 7, 2022
2 parents 08b5d42 + ce4d5f2 commit e0bb441
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ private JsonObject parseParameter(JsonObject paramObject, JsonObject values) {
JsonObject parsedObject = new JsonObject();
String name = paramObject.get("name").getAsString();
switch (type) {
case PRIMITIVE:
parsedObject.add(name, paramObject.getAsJsonPrimitive("value"));
break;
// an OBJECT would assume the elements could have substitution variables
case OBJECT:
if (paramObject.get("value").isJsonObject()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*/

public enum ParameterTypes {
PRIMITIVE("primitive"),
LIST("list"),
OBJECT("object"),
WATERMARK("watermark"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,27 @@ public void testListParameterByExtractMode() {
state.setProp(EXTRACT_IS_FULL.toString(), false);
Assert.assertEquals(expected, JsonParameter.getParametersAsJsonString(msParameters4.toString(), new JsonObject(), state));
}

@Test
public void testPrimitiveType() {
// int
JsonArray msParameters = gson.fromJson("[{\"name\": \"id\", \"type\": \"primitive\", \"value\": 114027}]", JsonArray.class);
String expected = "{\"id\":114027}";
Assert.assertEquals(expected, JsonParameter.getParametersAsJsonString(msParameters.toString(), new JsonObject(), state));

// string
msParameters = gson.fromJson("[{\"name\": \"id\", \"type\": \"primitive\", \"value\": \"114027\"}]", JsonArray.class);
expected = "{\"id\":\"114027\"}";
Assert.assertEquals(expected, JsonParameter.getParametersAsJsonString(msParameters.toString(), new JsonObject(), state));

// boolean
msParameters = gson.fromJson("[{\"name\": \"id\", \"type\": \"primitive\", \"value\": true}]", JsonArray.class);
expected = "{\"id\":true}";
Assert.assertEquals(expected, JsonParameter.getParametersAsJsonString(msParameters.toString(), new JsonObject(), state));

// float
msParameters = gson.fromJson("[{\"name\": \"id\", \"type\": \"primitive\", \"value\": 93.3453}]", JsonArray.class);
expected = "{\"id\":93.3453}";
Assert.assertEquals(expected, JsonParameter.getParametersAsJsonString(msParameters.toString(), new JsonObject(), state));
}
}
4 changes: 4 additions & 0 deletions docs/parameters/ms.parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ will be carried as strings.

The following types of parameters are designed:

- **primitive**: `primitive` type is for those cases where the value should not be quoted in the final request.
While `list` type is for those cases where the value should be quoted.
for e.g. for parameters like {"id":114027}, {"id":true}, {"id":93.3453}

- **list**: list is the default type, which means a primitive string.

- **object**: a `object` parameter contains recursively defined parameters.
Expand Down

0 comments on commit e0bb441

Please sign in to comment.