Commit 0faef1ad164a728a1b2d12417b5b0bb52bdbc34e
Committed by
Andrew Shvayka
1 parent
0227234a
rest client improvments
Showing
1 changed file
with
25 additions
and
17 deletions
... | ... | @@ -45,7 +45,6 @@ import org.thingsboard.server.common.data.Tenant; |
45 | 45 | import org.thingsboard.server.common.data.UpdateMessage; |
46 | 46 | import org.thingsboard.server.common.data.User; |
47 | 47 | import org.thingsboard.server.common.data.alarm.Alarm; |
48 | -import org.thingsboard.server.common.data.id.AlarmId; | |
49 | 48 | import org.thingsboard.server.common.data.alarm.AlarmInfo; |
50 | 49 | import org.thingsboard.server.common.data.alarm.AlarmSearchStatus; |
51 | 50 | import org.thingsboard.server.common.data.alarm.AlarmSeverity; |
... | ... | @@ -56,6 +55,7 @@ import org.thingsboard.server.common.data.audit.ActionType; |
56 | 55 | import org.thingsboard.server.common.data.audit.AuditLog; |
57 | 56 | import org.thingsboard.server.common.data.device.DeviceSearchQuery; |
58 | 57 | import org.thingsboard.server.common.data.entityview.EntityViewSearchQuery; |
58 | +import org.thingsboard.server.common.data.id.AlarmId; | |
59 | 59 | import org.thingsboard.server.common.data.id.AssetId; |
60 | 60 | import org.thingsboard.server.common.data.id.CustomerId; |
61 | 61 | import org.thingsboard.server.common.data.id.DashboardId; |
... | ... | @@ -73,6 +73,7 @@ import org.thingsboard.server.common.data.kv.AttributeKvEntry; |
73 | 73 | import org.thingsboard.server.common.data.kv.TsKvEntry; |
74 | 74 | import org.thingsboard.server.common.data.page.PageData; |
75 | 75 | import org.thingsboard.server.common.data.page.PageLink; |
76 | +import org.thingsboard.server.common.data.page.SortOrder; | |
76 | 77 | import org.thingsboard.server.common.data.page.TimePageLink; |
77 | 78 | import org.thingsboard.server.common.data.plugin.ComponentDescriptor; |
78 | 79 | import org.thingsboard.server.common.data.plugin.ComponentType; |
... | ... | @@ -890,7 +891,7 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { |
890 | 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 | 895 | Map<String, String> params = new HashMap<>(); |
895 | 896 | params.put("customerId", customerId.getId().toString()); |
896 | 897 | addPageLinkToParam(params, pageLink); |
... | ... | @@ -1634,17 +1635,35 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { |
1634 | 1635 | } |
1635 | 1636 | |
1636 | 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 | 1643 | Map<String, String> params = new HashMap<>(); |
1638 | 1644 | params.put("entityType", entityId.getEntityType().name()); |
1639 | 1645 | params.put("entityId", entityId.getId().toString()); |
1640 | 1646 | params.put("keys", listToString(keys)); |
1641 | 1647 | params.put("interval", interval == null ? "0" : interval.toString()); |
1642 | 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 | 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 | 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 | 1667 | HttpMethod.GET, |
1649 | 1668 | HttpEntity.EMPTY, |
1650 | 1669 | new ParameterizedTypeReference<Map<String, List<JsonNode>>>() { |
... | ... | @@ -1996,23 +2015,12 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable { |
1996 | 2015 | } |
1997 | 2016 | |
1998 | 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 | 2018 | String urlParams = "limit={limit}&ascOrder={ascOrder}"; |
2011 | 2019 | if (pageLink.getStartTime() != null) { |
2012 | - urlParams += "&" + startTime + "={startTime}"; | |
2020 | + urlParams += "&startTime={startTime}"; | |
2013 | 2021 | } |
2014 | 2022 | if (pageLink.getEndTime() != null) { |
2015 | - urlParams += "&" + endTime + "={endTime}"; | |
2023 | + urlParams += "&endTime={endTime}"; | |
2016 | 2024 | } |
2017 | 2025 | return urlParams; |
2018 | 2026 | } | ... | ... |