Skip to content

Commit

Permalink
Sort order parameter for data messages request
Browse files Browse the repository at this point in the history
  • Loading branch information
xshiart committed May 17, 2020
1 parent 9c48a48 commit fb61ec8
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
package org.eclipse.kapua.app.api.resources.v1.resources;

import com.google.common.base.Strings;

import org.eclipse.kapua.KapuaException;
import org.eclipse.kapua.app.api.resources.v1.resources.model.CountResult;
import org.eclipse.kapua.app.api.resources.v1.resources.model.DateParam;
Expand All @@ -28,16 +27,20 @@
import org.eclipse.kapua.service.datastore.client.model.InsertResponse;
import org.eclipse.kapua.service.datastore.internal.mediator.ChannelInfoField;
import org.eclipse.kapua.service.datastore.internal.mediator.MessageField;
import org.eclipse.kapua.service.datastore.internal.schema.MessageSchema;
import org.eclipse.kapua.service.datastore.model.DatastoreMessage;
import org.eclipse.kapua.service.datastore.model.MessageListResult;
import org.eclipse.kapua.service.datastore.model.query.AndPredicate;
import org.eclipse.kapua.service.datastore.model.query.MessageQuery;
import org.eclipse.kapua.service.datastore.model.query.RangePredicate;
import org.eclipse.kapua.service.datastore.model.query.SortField;
import org.eclipse.kapua.service.datastore.model.query.SortDirection;
import org.eclipse.kapua.service.datastore.model.query.StorableFetchStyle;
import org.eclipse.kapua.service.datastore.model.query.StorablePredicate;
import org.eclipse.kapua.service.datastore.model.query.StorablePredicateFactory;
import org.eclipse.kapua.service.datastore.model.query.TermPredicate;


import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
Expand All @@ -48,7 +51,9 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Path("{scopeId}/data/messages")
public class DataMessages extends AbstractKapuaResource {
Expand Down Expand Up @@ -88,7 +93,8 @@ public <V extends Comparable<V>> MessageListResult simpleQuery( //
@QueryParam("metricMin") String metricMinValue, //
@QueryParam("metricMax") String metricMaxValue, //
@QueryParam("offset") @DefaultValue("0") int offset,//
@QueryParam("limit") @DefaultValue("50") int limit) throws KapuaException {
@QueryParam("limit") @DefaultValue("50") int limit,
@QueryParam("order") @DefaultValue("desc") String order) throws KapuaException {

AndPredicate andPredicate = STORABLE_PREDICATE_FACTORY.newAndPredicate();
if (!Strings.isNullOrEmpty(clientId)) {
Expand Down Expand Up @@ -116,6 +122,10 @@ public <V extends Comparable<V>> MessageListResult simpleQuery( //
query.setOffset(offset);
query.setLimit(limit);

List<SortField> sort = new ArrayList<>();
sort.add(SortField.of(SortDirection.valueOf(order.toUpperCase()), MessageSchema.MESSAGE_TIMESTAMP));
query.setSortFields(sort);

return query(scopeId, query);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ public <V extends Comparable<V>> JsonMessageListResult simpleQueryJson(
@QueryParam("metricMin") String metricMinValue,
@QueryParam("metricMax") String metricMaxValue,
@QueryParam("offset") @DefaultValue("0") int offset,
@QueryParam("limit") @DefaultValue("50") int limit) throws KapuaException {
@QueryParam("limit") @DefaultValue("50") int limit,
@QueryParam("order") @DefaultValue("desc") String order) throws KapuaException {

MessageListResult result = DATA_MESSAGES.simpleQuery(
scopeId,
Expand All @@ -105,7 +106,8 @@ public <V extends Comparable<V>> JsonMessageListResult simpleQueryJson(
metricMinValue,
metricMaxValue,
offset,
limit);
limit,
order);

List<JsonDatastoreMessage> jsonDatastoreMessages = new ArrayList<>();
result.getItems().forEach(m -> jsonDatastoreMessages.add(new JsonDatastoreMessage(m)));
Expand Down

0 comments on commit fb61ec8

Please sign in to comment.