Browse Source

swagger annotation improvements

pull/14929/head
dashevchenko 7 months ago
parent
commit
7729f4596e
  1. 8
      application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java
  2. 2
      application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java
  3. 2
      application/src/main/java/org/thingsboard/server/service/security/model/SecurityUser.java
  4. 12
      common/data/src/main/java/org/thingsboard/server/common/data/ai/dto/TbChatRequest.java

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

@ -40,10 +40,10 @@ import io.swagger.v3.oas.models.responses.ApiResponses;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import io.swagger.v3.oas.models.tags.Tag;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springdoc.core.customizers.OperationCustomizer;
import org.springdoc.core.customizers.RouterOperationCustomizer;
import org.springdoc.core.discoverer.SpringDocParameterNameDiscoverer;
import org.springdoc.core.models.GroupedOpenApi;
import org.springdoc.core.properties.SpringDocConfigProperties;
@ -55,9 +55,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestParam;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.exception.ThingsboardErrorCode;
@ -67,7 +65,6 @@ import org.thingsboard.server.exception.ThingsboardErrorResponse;
import org.thingsboard.server.service.security.auth.rest.LoginRequest;
import org.thingsboard.server.service.security.auth.rest.LoginResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedHashMap;
@ -86,7 +83,8 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
@Profile("!test")
public class SwaggerConfiguration {
static {
@PostConstruct
public void configureModelResolver() {
ModelResolver.enumsAsRef = true;
}

2
application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java

@ -189,7 +189,7 @@ public class CalculatedFieldController extends BaseController {
notes = "Fetch the Calculated Fields based on the provided Entity Id."
)
@PreAuthorize("hasAnyAuthority('TENANT_ADMIN')")
@GetMapping(value = "/calculatedField/{entityType}/{entityId}", params = {"pageSize", "page"})
@GetMapping(value = "/calculatedField/{entityType}/{entityId}")
public PageData<CalculatedField> getCalculatedFieldsByEntityIdV2(
@Parameter(description = ENTITY_TYPE_PARAM_DESCRIPTION, required = true, schema = @Schema(defaultValue = "DEVICE")) @PathVariable("entityType") String entityType,
@Parameter(description = ENTITY_ID_PARAM_DESCRIPTION, required = true) @PathVariable("entityId") String entityIdStr,

2
application/src/main/java/org/thingsboard/server/service/security/model/SecurityUser.java

@ -15,7 +15,6 @@
*/
package org.thingsboard.server.service.security.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.springframework.security.core.GrantedAuthority;
@ -28,7 +27,6 @@ import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Schema
public class SecurityUser extends User {
private static final long serialVersionUID = -797397440703066079L;

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

@ -59,16 +59,16 @@ public record TbChatRequest(
requiredMode = Schema.RequiredMode.REQUIRED,
accessMode = Schema.AccessMode.READ_WRITE,
description = "Configuration of the AI chat model that should execute the request",
discriminatorProperty = "modelType",
discriminatorProperty = "provider",
discriminatorMapping = {
@DiscriminatorMapping(value = "OPENAI", schema = OpenAiChatModelConfig.class),
@DiscriminatorMapping(value = "AZURE_OPENAI", schema = AzureOpenAiChatModelConfig.class),
@DiscriminatorMapping(value = "GOOGLE_AI", schema = GoogleAiGeminiChatModelConfig.class),
@DiscriminatorMapping(value = "VERTEX_AI", schema = GoogleVertexAiGeminiChatModelConfig.class),
@DiscriminatorMapping(value = "MISTRAL", schema = MistralAiChatModelConfig.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 = "BEDROCK", schema = AmazonBedrockChatModelConfig.class),
@DiscriminatorMapping(value = "GITHUB", schema = GitHubModelsChatModelConfig.class),
@DiscriminatorMapping(value = "AMAZON_BEDROCK", schema = AmazonBedrockChatModelConfig.class),
@DiscriminatorMapping(value = "GITHUB_MODELS", schema = GitHubModelsChatModelConfig.class),
@DiscriminatorMapping(value = "OLLAMA", schema = OllamaChatModelConfig.class)
}
)

Loading…
Cancel
Save