Browse Source

openapi improvements

pull/14929/head
dashevchenko 7 months ago
parent
commit
3f43dd9b59
  1. 5
      application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java
  2. 24
      common/data/src/main/java/org/thingsboard/server/common/data/ai/dto/TbChatRequest.java
  3. 2
      common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AiChatModelConfig.java
  4. 1
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ArgumentsBasedCalculatedFieldConfiguration.java
  5. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/BaseCalculatedFieldConfiguration.java
  6. 3
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ExpressionBasedCalculatedFieldConfiguration.java
  7. 2
      common/data/src/main/java/org/thingsboard/server/common/data/exception/ThingsboardErrorCode.java
  8. 3
      common/data/src/main/java/org/thingsboard/server/common/data/sms/config/SmppSmsProviderConfiguration.java
  9. 1
      common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/EntityExportData.java
  10. 3
      common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java

5
application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java

@ -17,6 +17,7 @@ package org.thingsboard.server.config;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.swagger.v3.core.converter.AnnotatedType;
import io.swagger.v3.core.converter.ModelConverter;
import io.swagger.v3.core.converter.ModelConverters;
@ -649,9 +650,11 @@ public class SwaggerConfiguration {
}
private static Example errorExample(String summary, ThingsboardErrorResponse example) {
var node = (ObjectNode) JacksonUtil.valueToTree(example);
node.put("timestamp", 1609459200000L);
return new Example()
.summary(summary)
.value(example);
.value(node);
}
}

24
common/data/src/main/java/org/thingsboard/server/common/data/ai/dto/TbChatRequest.java

@ -20,20 +20,10 @@ import dev.langchain4j.data.message.Content;
import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.request.ChatRequest;
import io.swagger.v3.oas.annotations.media.DiscriminatorMapping;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.thingsboard.server.common.data.ai.model.chat.AiChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.AmazonBedrockChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.AnthropicChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.AzureOpenAiChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.GitHubModelsChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.GoogleAiGeminiChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.GoogleVertexAiGeminiChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.MistralAiChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.OllamaChatModelConfig;
import org.thingsboard.server.common.data.ai.model.chat.OpenAiChatModelConfig;
import java.util.ArrayList;
import java.util.List;
@ -58,19 +48,7 @@ public record TbChatRequest(
@Schema(
requiredMode = Schema.RequiredMode.REQUIRED,
accessMode = Schema.AccessMode.READ_WRITE,
description = "Configuration of the AI chat model that should execute the request",
discriminatorProperty = "provider",
discriminatorMapping = {
@DiscriminatorMapping(value = "OPENAI", schema = OpenAiChatModelConfig.class),
@DiscriminatorMapping(value = "AZURE_OPENAI", schema = AzureOpenAiChatModelConfig.class),
@DiscriminatorMapping(value = "GOOGLE_AI_GEMINI", schema = GoogleAiGeminiChatModelConfig.class),
@DiscriminatorMapping(value = "GOOGLE_VERTEX_AI_GEMINI", schema = GoogleVertexAiGeminiChatModelConfig.class),
@DiscriminatorMapping(value = "MISTRAL_AI", schema = MistralAiChatModelConfig.class),
@DiscriminatorMapping(value = "ANTHROPIC", schema = AnthropicChatModelConfig.class),
@DiscriminatorMapping(value = "AMAZON_BEDROCK", schema = AmazonBedrockChatModelConfig.class),
@DiscriminatorMapping(value = "GITHUB_MODELS", schema = GitHubModelsChatModelConfig.class),
@DiscriminatorMapping(value = "OLLAMA", schema = OllamaChatModelConfig.class)
}
description = "Configuration of the AI chat model that should execute the request"
)
@NotNull @Valid
AiChatModelConfig<?> chatModelConfig

2
common/data/src/main/java/org/thingsboard/server/common/data/ai/model/chat/AiChatModelConfig.java

@ -17,11 +17,9 @@ package org.thingsboard.server.common.data.ai.model.chat;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.langchain4j.model.chat.ChatModel;
import io.swagger.v3.oas.annotations.media.Schema;
import org.thingsboard.server.common.data.ai.model.AiModelConfig;
import org.thingsboard.server.common.data.ai.model.AiModelType;
@Schema
public sealed interface AiChatModelConfig<C extends AiChatModelConfig<C>> extends AiModelConfig
permits
OpenAiChatModelConfig, AzureOpenAiChatModelConfig, GoogleAiGeminiChatModelConfig,

1
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ArgumentsBasedCalculatedFieldConfiguration.java

@ -27,7 +27,6 @@ import java.util.Set;
import static java.util.stream.Collectors.toSet;
@Schema(allOf = CalculatedFieldConfiguration.class)
public interface ArgumentsBasedCalculatedFieldConfiguration extends CalculatedFieldConfiguration {
@Valid

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/BaseCalculatedFieldConfiguration.java

@ -21,7 +21,7 @@ import lombok.Data;
import java.util.Map;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
public abstract class BaseCalculatedFieldConfiguration implements ExpressionBasedCalculatedFieldConfiguration {

3
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ExpressionBasedCalculatedFieldConfiguration.java

@ -15,9 +15,6 @@
*/
package org.thingsboard.server.common.data.cf.configuration;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(allOf = CalculatedFieldConfiguration.class)
public interface ExpressionBasedCalculatedFieldConfiguration extends ArgumentsBasedCalculatedFieldConfiguration {
String getExpression();

2
common/data/src/main/java/org/thingsboard/server/common/data/exception/ThingsboardErrorCode.java

@ -16,9 +16,7 @@
package org.thingsboard.server.common.data.exception;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema
public enum ThingsboardErrorCode {
GENERAL(2),

3
common/data/src/main/java/org/thingsboard/server/common/data/sms/config/SmppSmsProviderConfiguration.java

@ -90,7 +90,7 @@ public class SmppSmsProviderConfiguration implements SmsProviderConfiguration {
@Schema(description = "Address range", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String addressRange;
@Schema(allowableValues = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "13", "14"},
@Schema(minimum = "0", maximum = "14",
description = "0 - SMSC Default Alphabet (ASCII for short and long code and to GSM for toll-free, used as default)\n" +
"1 - IA5 (ASCII for short and long code, Latin 9 for toll-free (ISO-8859-9))\n" +
"2 - Octet Unspecified (8-bit binary)\n" +
@ -111,7 +111,6 @@ public class SmppSmsProviderConfiguration implements SmsProviderConfiguration {
return SmsProviderType.SMPP;
}
@Schema(enumAsRef = true)
public enum SmppBindType {
TX, RX, TRX
}

1
common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/EntityExportData.java

@ -75,6 +75,7 @@ public class EntityExportData<E extends ExportableEntity<? extends EntityId>> {
@JsonProperty(index = 2)
@JsonTbEntity
@Schema(implementation = ExportableEntity.class)
private E entity;
@JsonProperty(index = 1)
@Schema

3
common/transport/http/src/main/java/org/thingsboard/server/transport/http/DeviceApiController.java

@ -20,11 +20,9 @@ import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -48,7 +46,6 @@ import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.DeviceTransportType;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.TbTransportService;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.ota.OtaPackageType;
import org.thingsboard.server.common.data.rpc.RpcStatus;

Loading…
Cancel
Save