Commit 0faef1ad164a728a1b2d12417b5b0bb52bdbc34e

Authored by YevhenBondarenko
Committed by Andrew Shvayka
1 parent 0227234a

rest client improvments

@@ -45,7 +45,6 @@ import org.thingsboard.server.common.data.Tenant; @@ -45,7 +45,6 @@ import org.thingsboard.server.common.data.Tenant;
45 import org.thingsboard.server.common.data.UpdateMessage; 45 import org.thingsboard.server.common.data.UpdateMessage;
46 import org.thingsboard.server.common.data.User; 46 import org.thingsboard.server.common.data.User;
47 import org.thingsboard.server.common.data.alarm.Alarm; 47 import org.thingsboard.server.common.data.alarm.Alarm;
48 -import org.thingsboard.server.common.data.id.AlarmId;  
49 import org.thingsboard.server.common.data.alarm.AlarmInfo; 48 import org.thingsboard.server.common.data.alarm.AlarmInfo;
50 import org.thingsboard.server.common.data.alarm.AlarmSearchStatus; 49 import org.thingsboard.server.common.data.alarm.AlarmSearchStatus;
51 import org.thingsboard.server.common.data.alarm.AlarmSeverity; 50 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
@@ -56,6 +55,7 @@ import org.thingsboard.server.common.data.audit.ActionType; @@ -56,6 +55,7 @@ import org.thingsboard.server.common.data.audit.ActionType;
56 import org.thingsboard.server.common.data.audit.AuditLog; 55 import org.thingsboard.server.common.data.audit.AuditLog;
57 import org.thingsboard.server.common.data.device.DeviceSearchQuery; 56 import org.thingsboard.server.common.data.device.DeviceSearchQuery;
58 import org.thingsboard.server.common.data.entityview.EntityViewSearchQuery; 57 import org.thingsboard.server.common.data.entityview.EntityViewSearchQuery;
  58 +import org.thingsboard.server.common.data.id.AlarmId;
59 import org.thingsboard.server.common.data.id.AssetId; 59 import org.thingsboard.server.common.data.id.AssetId;
60 import org.thingsboard.server.common.data.id.CustomerId; 60 import org.thingsboard.server.common.data.id.CustomerId;
61 import org.thingsboard.server.common.data.id.DashboardId; 61 import org.thingsboard.server.common.data.id.DashboardId;
@@ -73,6 +73,7 @@ import org.thingsboard.server.common.data.kv.AttributeKvEntry; @@ -73,6 +73,7 @@ import org.thingsboard.server.common.data.kv.AttributeKvEntry;
73 import org.thingsboard.server.common.data.kv.TsKvEntry; 73 import org.thingsboard.server.common.data.kv.TsKvEntry;
74 import org.thingsboard.server.common.data.page.PageData; 74 import org.thingsboard.server.common.data.page.PageData;
75 import org.thingsboard.server.common.data.page.PageLink; 75 import org.thingsboard.server.common.data.page.PageLink;
  76 +import org.thingsboard.server.common.data.page.SortOrder;
76 import org.thingsboard.server.common.data.page.TimePageLink; 77 import org.thingsboard.server.common.data.page.TimePageLink;
77 import org.thingsboard.server.common.data.plugin.ComponentDescriptor; 78 import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
78 import org.thingsboard.server.common.data.plugin.ComponentType; 79 import org.thingsboard.server.common.data.plugin.ComponentType;
@@ -890,7 +891,7 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { @@ -890,7 +891,7 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable {
890 }, params).getBody(); 891 }, params).getBody();
891 } 892 }
892 893
893 - public PageData<DashboardInfo> getCustomerDashboards(CustomerId customerId, TimePageLink pageLink) { 894 + public PageData<DashboardInfo> getCustomerDashboards(CustomerId customerId, PageLink pageLink) {
894 Map<String, String> params = new HashMap<>(); 895 Map<String, String> params = new HashMap<>();
895 params.put("customerId", customerId.getId().toString()); 896 params.put("customerId", customerId.getId().toString());
896 addPageLinkToParam(params, pageLink); 897 addPageLinkToParam(params, pageLink);
@@ -1634,17 +1635,35 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { @@ -1634,17 +1635,35 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable {
1634 } 1635 }
1635 1636
1636 public List<TsKvEntry> getTimeseries(EntityId entityId, List<String> keys, Long interval, Aggregation agg, TimePageLink pageLink, boolean useStrictDataTypes) { 1637 public List<TsKvEntry> getTimeseries(EntityId entityId, List<String> keys, Long interval, Aggregation agg, TimePageLink pageLink, boolean useStrictDataTypes) {
  1638 + SortOrder sortOrder = pageLink.getSortOrder();
  1639 + return getTimeseries(entityId, keys, interval, agg, sortOrder != null ? sortOrder.getDirection() : null, pageLink.getStartTime(), pageLink.getEndTime(), 100, useStrictDataTypes);
  1640 + }
  1641 +
  1642 + public List<TsKvEntry> getTimeseries(EntityId entityId, List<String> keys, Long interval, Aggregation agg, SortOrder.Direction sortOrder, Long startTime, Long endTime, Integer limit, boolean useStrictDataTypes) {
1637 Map<String, String> params = new HashMap<>(); 1643 Map<String, String> params = new HashMap<>();
1638 params.put("entityType", entityId.getEntityType().name()); 1644 params.put("entityType", entityId.getEntityType().name());
1639 params.put("entityId", entityId.getId().toString()); 1645 params.put("entityId", entityId.getId().toString());
1640 params.put("keys", listToString(keys)); 1646 params.put("keys", listToString(keys));
1641 params.put("interval", interval == null ? "0" : interval.toString()); 1647 params.put("interval", interval == null ? "0" : interval.toString());
1642 params.put("agg", agg == null ? "NONE" : agg.name()); 1648 params.put("agg", agg == null ? "NONE" : agg.name());
  1649 + params.put("limit", limit != null ? limit.toString() : "100");
  1650 + params.put("orderBy", sortOrder != null ? sortOrder.name() : "DESC");
1643 params.put("useStrictDataTypes", Boolean.toString(useStrictDataTypes)); 1651 params.put("useStrictDataTypes", Boolean.toString(useStrictDataTypes));
1644 - addPageLinkToParam(params, pageLink); 1652 +
  1653 + StringBuilder urlBuilder = new StringBuilder(baseURL);
  1654 + urlBuilder.append("/api/plugins/telemetry/{entityType}/{entityId}/values/timeseries?keys={keys}&interval={interval}&agg={agg}&useStrictDataTypes={useStrictDataTypes}&orderBy={orderBy}");
  1655 +
  1656 + if (startTime != null) {
  1657 + urlBuilder.append("&startTs={startTs}");
  1658 + params.put("startTs", String.valueOf(startTime));
  1659 + }
  1660 + if (endTime != null) {
  1661 + urlBuilder.append("&endTs={endTs}");
  1662 + params.put("endTs", String.valueOf(endTime));
  1663 + }
1645 1664
1646 Map<String, List<JsonNode>> timeseries = restTemplate.exchange( 1665 Map<String, List<JsonNode>> timeseries = restTemplate.exchange(
1647 - baseURL + "/api/plugins/telemetry/{entityType}/{entityId}/values/timeseries?keys={keys}&interval={interval}&agg={agg}&useStrictDataTypes={useStrictDataTypes}&" + getUrlParamsTs(pageLink), 1666 + urlBuilder.toString(),
1648 HttpMethod.GET, 1667 HttpMethod.GET,
1649 HttpEntity.EMPTY, 1668 HttpEntity.EMPTY,
1650 new ParameterizedTypeReference<Map<String, List<JsonNode>>>() { 1669 new ParameterizedTypeReference<Map<String, List<JsonNode>>>() {
@@ -1996,23 +2015,12 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { @@ -1996,23 +2015,12 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable {
1996 } 2015 }
1997 2016
1998 private String getTimeUrlParams(TimePageLink pageLink) { 2017 private String getTimeUrlParams(TimePageLink pageLink) {
1999 - return this.getUrlParams(pageLink);  
2000 - }  
2001 - private String getUrlParams(TimePageLink pageLink) {  
2002 - return getUrlParams(pageLink, "startTime", "endTime");  
2003 - }  
2004 -  
2005 - private String getUrlParamsTs(TimePageLink pageLink) {  
2006 - return getUrlParams(pageLink, "startTs", "endTs");  
2007 - }  
2008 -  
2009 - private String getUrlParams(TimePageLink pageLink, String startTime, String endTime) {  
2010 String urlParams = "limit={limit}&ascOrder={ascOrder}"; 2018 String urlParams = "limit={limit}&ascOrder={ascOrder}";
2011 if (pageLink.getStartTime() != null) { 2019 if (pageLink.getStartTime() != null) {
2012 - urlParams += "&" + startTime + "={startTime}"; 2020 + urlParams += "&startTime={startTime}";
2013 } 2021 }
2014 if (pageLink.getEndTime() != null) { 2022 if (pageLink.getEndTime() != null) {
2015 - urlParams += "&" + endTime + "={endTime}"; 2023 + urlParams += "&endTime={endTime}";
2016 } 2024 }
2017 return urlParams; 2025 return urlParams;
2018 } 2026 }