Skip to content

Commit cd849ee

Browse files
committed
Fix sorts, params, and includeMetadata
1 parent 8892570 commit cd849ee

4 files changed

Lines changed: 32 additions & 25 deletions

File tree

src/org/labkey/remoteapi/query/BaseQueryCommand.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public abstract class BaseQueryCommand<ResponseType extends CommandResponse> ext
3737
public BaseQueryCommand(String controllerName, String actionName)
3838
{
3939
super(controllerName, actionName);
40+
setRequiredVersion(9.1); // Need >= 9.1 to support includeMetadata
4041
}
4142

4243
/**
@@ -200,14 +201,6 @@ public JSONObject getJsonObject()
200201
{
201202
JSONObject json = new JSONObject();
202203

203-
if (null != getSorts() && !getSorts().isEmpty())
204-
json.put("query.sort", Sort.getSortQueryStringParam(getSorts()));
205-
206-
for (Map.Entry<String, String> entry : getQueryParameters().entrySet())
207-
{
208-
json.put("query.param." + entry.getKey(), entry.getValue());
209-
}
210-
211204
if (getContainerFilter() != null)
212205
json.put("containerFilter", getContainerFilter().name());
213206

src/org/labkey/remoteapi/query/BaseSelectRowsCommand.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.ArrayList;
2222
import java.util.List;
23+
import java.util.Map;
2324

2425
public class BaseSelectRowsCommand<ResponseType extends CommandResponse> extends BaseQueryCommand<ResponseType>
2526
{
@@ -96,7 +97,18 @@ public JSONObject getJsonObject()
9697
{
9798
JSONObject json = super.getJsonObject();
9899

100+
// Note: SelectRows and ExecuteSql both support sort and param, but they differ in how they're conveyed (URL vs. JSON)
101+
102+
if (null != getSorts() && !getSorts().isEmpty())
103+
json.put("query.sort", Sort.getSortQueryStringParam(getSorts()));
104+
105+
for (Map.Entry<String, String> entry : getQueryParameters().entrySet())
106+
{
107+
json.put("query.param." + entry.getKey(), entry.getValue());
108+
}
109+
99110
// Note: SelectRows and ExecuteSql both support offset and maxRows, but the property names are different
111+
100112
if (getOffset() > 0)
101113
json.put("query.offset", getOffset());
102114

src/org/labkey/remoteapi/query/ExecuteSqlCommand.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.labkey.remoteapi.internal.EncodeUtils;
2020

2121
import java.util.List;
22+
import java.util.Map;
2223

2324
/**
2425
* Command for executing arbitrary LabKey SQL.
@@ -215,4 +216,20 @@ public JSONObject getJsonObject()
215216

216217
return json;
217218
}
219+
220+
@Override
221+
protected Map<String, Object> createParameterMap()
222+
{
223+
Map<String, Object> params = super.createParameterMap();
224+
225+
if (null != getSorts() && !getSorts().isEmpty())
226+
params.put("query.sort", Sort.getSortQueryStringParam(getSorts()));
227+
228+
for (Map.Entry<String, String> entry : getQueryParameters().entrySet())
229+
{
230+
params.put("query.param." + entry.getKey(), entry.getValue());
231+
}
232+
233+
return params;
234+
}
218235
}

src/org/labkey/remoteapi/test/Test.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,7 @@
2424
import org.labkey.remoteapi.assay.nab.model.NAbNeutralizationResult;
2525
import org.labkey.remoteapi.assay.nab.model.NAbRun;
2626
import org.labkey.remoteapi.assay.nab.model.NAbSample;
27-
import org.labkey.remoteapi.query.ContainerFilter;
28-
import org.labkey.remoteapi.query.DeleteRowsCommand;
29-
import org.labkey.remoteapi.query.ExecuteSqlCommand;
30-
import org.labkey.remoteapi.query.Filter;
31-
import org.labkey.remoteapi.query.GetQueriesCommand;
32-
import org.labkey.remoteapi.query.GetQueriesResponse;
33-
import org.labkey.remoteapi.query.GetSchemasCommand;
34-
import org.labkey.remoteapi.query.GetSchemasResponse;
35-
import org.labkey.remoteapi.query.InsertRowsCommand;
36-
import org.labkey.remoteapi.query.RowsResponse;
37-
import org.labkey.remoteapi.query.SelectRowsCommand;
38-
import org.labkey.remoteapi.query.SelectRowsResponse;
39-
import org.labkey.remoteapi.query.Sort;
40-
import org.labkey.remoteapi.query.TruncateTableCommand;
41-
import org.labkey.remoteapi.query.TruncateTableResponse;
42-
import org.labkey.remoteapi.query.UpdateRowsCommand;
27+
import org.labkey.remoteapi.query.*;
4328

4429
import java.io.IOException;
4530
import java.util.Collections;
@@ -55,7 +40,7 @@ public class Test
5540

5641
public static void main(String[] args) throws Exception
5742
{
58-
String baseUrl = "http://localhost:8080/labkey";
43+
String baseUrl = "http://localhost:8080";
5944
Connection cn = args.length < 2 ? new Connection(baseUrl) : new Connection(baseUrl, args[0], args[1]);
6045
//Connection cn = new Connection(baseUrl, new ApiKeyCredentialsProvider("session:d7c3a4aeb283e3e54c4126a707908420"));
6146
//Connection cn = new Connection(baseUrl, new NetRcCredentialsProvider(baseUrl));

0 commit comments

Comments
 (0)