Browse Source

Merge pull request #14991 from dskarzh/feat/rest-client-get-calculated-fields

feat: add RestClient support for getCalculatedFields API
pull/15001/head
Viacheslav Klimov 8 months ago
committed by GitHub
parent
commit
4e7567c324
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      rest-client/pom.xml
  2. 45
      rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java

4
rest-client/pom.xml

@ -51,6 +51,10 @@
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
</dependency>
</dependencies>
<build>

45
rest-client/src/main/java/org/thingsboard/rest/client/RestClient.java

@ -22,6 +22,7 @@ import com.google.common.base.Strings;
import lombok.Getter;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils;
import org.apache.hc.core5.net.URIBuilder;
import org.apache.commons.lang3.concurrent.LazyInitializer;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.ByteArrayResource;
@ -93,6 +94,8 @@ import org.thingsboard.server.common.data.asset.AssetSearchQuery;
import org.thingsboard.server.common.data.audit.ActionType;
import org.thingsboard.server.common.data.audit.AuditLog;
import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.cf.CalculatedFieldInfo;
import org.thingsboard.server.common.data.cf.CalculatedFieldType;
import org.thingsboard.server.common.data.device.DeviceSearchQuery;
import org.thingsboard.server.common.data.domain.Domain;
import org.thingsboard.server.common.data.domain.DomainInfo;
@ -210,11 +213,13 @@ import org.thingsboard.server.common.data.widget.WidgetsBundle;
import java.io.Closeable;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
@ -4309,6 +4314,46 @@ public class RestClient implements Closeable {
}
@SneakyThrows(URISyntaxException.class)
public PageData<CalculatedFieldInfo> getCalculatedFields(PageLink pageLink,
Set<CalculatedFieldType> types,
EntityType entityType,
Set<UUID> entities,
Set<String> names) {
var urlBuilder = new URIBuilder(baseURL).appendPath("/api/calculatedFields");
urlBuilder.addParameter("pageSize", String.valueOf(pageLink.getPageSize()));
urlBuilder.addParameter("page", String.valueOf(pageLink.getPage()));
if (!isEmpty(pageLink.getTextSearch())) {
urlBuilder.addParameter("textSearch", pageLink.getTextSearch());
}
if (pageLink.getSortOrder() != null) {
urlBuilder.addParameter("sortProperty", pageLink.getSortOrder().getProperty());
urlBuilder.addParameter("sortOrder", pageLink.getSortOrder().getDirection().name());
}
if (!CollectionUtils.isEmpty(types)) {
for (CalculatedFieldType type : types) {
urlBuilder.addParameter("types", type.name());
}
}
if (entityType != null) {
urlBuilder.addParameter("entityType", entityType.name());
}
if (!CollectionUtils.isEmpty(entities)) {
for (UUID entity : entities) {
urlBuilder.addParameter("entities", entity.toString());
}
}
if (!CollectionUtils.isEmpty(names)) {
for (String name : names) {
urlBuilder.addParameter("name", name);
}
}
return restTemplate.exchange(
urlBuilder.build(),
HttpMethod.GET, HttpEntity.EMPTY,
new ParameterizedTypeReference<PageData<CalculatedFieldInfo>>() {}).getBody();
}
public void deleteCalculatedField(CalculatedFieldId calculatedFieldId) {
restTemplate.delete(baseURL + "/api/calculatedField/{calculatedFieldId}", calculatedFieldId.getId());
}

Loading…
Cancel
Save