Browse Source

improvements fro JsonNode

pull/14929/head
dashevchenko 7 months ago
parent
commit
d1e01683ed
  1. 6
      application/src/main/java/org/thingsboard/server/config/SwaggerConfiguration.java
  2. 2
      application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java
  3. 2
      common/data/src/main/java/org/thingsboard/server/common/data/BaseDataWithAdditionalInfo.java
  4. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java
  5. 2
      common/data/src/main/java/org/thingsboard/server/common/data/relation/EntityRelation.java
  6. 4
      common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleNode.java
  7. 2
      common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/WidgetsBundleExportData.java

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

@ -303,18 +303,12 @@ public class SwaggerConfiguration {
} }
private void addDefaultSchemas(OpenAPI openAPI) { private void addDefaultSchemas(OpenAPI openAPI) {
Schema<?> jsonNodeSchema = new Schema<>()
.type("object")
.description("Arbitrary JSON object or primitive value")
.additionalProperties(true)
.example(JacksonUtil.newObjectNode());
Schema<?> errorCodeSchema = new Schema<>() Schema<?> errorCodeSchema = new Schema<>()
.type("integer") .type("integer")
.description("Platform error code") .description("Platform error code")
._enum(Arrays.asList(2, 10, 11, 15, 20, 30, 31, 32, 33, 34, 35, 40, 45, 46)); ._enum(Arrays.asList(2, 10, 11, 15, 20, 30, 31, 32, 33, 34, 35, 40, 45, 46));
openAPI.getComponents().addSchemas("ThingsboardErrorCode", errorCodeSchema); openAPI.getComponents().addSchemas("ThingsboardErrorCode", errorCodeSchema);
openAPI.getComponents() openAPI.getComponents()
.addSchemas("JsonNode", jsonNodeSchema)
.addSchemas("LoginRequest", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(LoginRequest.class)).schema) .addSchemas("LoginRequest", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(LoginRequest.class)).schema)
.addSchemas("LoginResponse", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(LoginResponse.class)).schema) .addSchemas("LoginResponse", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(LoginResponse.class)).schema)
.addSchemas("ThingsboardErrorResponse", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(ThingsboardErrorResponse.class)).schema) .addSchemas("ThingsboardErrorResponse", ModelConverters.getInstance().readAllAsResolvedSchema(new AnnotatedType().type(ThingsboardErrorResponse.class)).schema)

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

@ -76,7 +76,7 @@ public class DeviceConnectivityController extends BaseController {
description = "OK", description = "OK",
content = @Content( content = @Content(
mediaType = MediaType.APPLICATION_JSON_VALUE, mediaType = MediaType.APPLICATION_JSON_VALUE,
schema = @Schema(ref = "#/components/schemas/JsonNode"), schema = @Schema(implementation = JsonNode.class),
examples = { examples = {
@ExampleObject( @ExampleObject(
name = "http", name = "http",

2
common/data/src/main/java/org/thingsboard/server/common/data/BaseDataWithAdditionalInfo.java

@ -40,7 +40,7 @@ import java.util.function.Supplier;
public abstract class BaseDataWithAdditionalInfo<I extends UUIDBased> extends BaseData<I> implements HasAdditionalInfo { public abstract class BaseDataWithAdditionalInfo<I extends UUIDBased> extends BaseData<I> implements HasAdditionalInfo {
@NoXss @NoXss
@Schema(implementation = JsonNode.class) @Schema
private transient JsonNode additionalInfo; private transient JsonNode additionalInfo;
@JsonIgnore @JsonIgnore
private byte[] additionalInfoBytes; private byte[] additionalInfoBytes;

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/AlarmComment.java

@ -47,7 +47,7 @@ public class AlarmComment extends BaseData<AlarmCommentId> implements HasName {
private UserId userId; private UserId userId;
@Schema(description = "Defines origination of comment. System type means comment was created by TB. OTHER type means comment was created by user.", example = "SYSTEM/OTHER") @Schema(description = "Defines origination of comment. System type means comment was created by TB. OTHER type means comment was created by user.", example = "SYSTEM/OTHER")
private AlarmCommentType type; private AlarmCommentType type;
@Schema(description = "JSON object with text of comment.", implementation = JsonNode.class) @Schema(description = "JSON object with text of comment.")
@NoXss @NoXss
@Length(fieldName = "comment", max = 10000) @Length(fieldName = "comment", max = 10000)
@EqualsAndHashCode.Include @EqualsAndHashCode.Include

2
common/data/src/main/java/org/thingsboard/server/common/data/relation/EntityRelation.java

@ -103,7 +103,7 @@ public class EntityRelation implements HasVersion, Serializable, EdqsObject {
this.version = entityRelation.getVersion(); this.version = entityRelation.getVersion();
} }
@Schema(description = "Additional parameters of the relation", implementation = JsonNode.class) @Schema(description = "Additional parameters of the relation")
public JsonNode getAdditionalInfo() { public JsonNode getAdditionalInfo() {
return BaseDataWithAdditionalInfo.getJson(() -> additionalInfo, () -> additionalInfoBytes); return BaseDataWithAdditionalInfo.getJson(() -> additionalInfo, () -> additionalInfoBytes);
} }

4
common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleNode.java

@ -61,7 +61,7 @@ public class RuleNode extends BaseDataWithAdditionalInfo<RuleNodeId> implements
private String queueName; private String queueName;
@Schema(description = "Version of rule node configuration. ", example = "0") @Schema(description = "Version of rule node configuration. ", example = "0")
private int configurationVersion; private int configurationVersion;
@Schema(description = "JSON with the rule node configuration. Structure depends on the rule node implementation.", implementation = JsonNode.class) @Schema(description = "JSON with the rule node configuration. Structure depends on the rule node implementation.")
private JsonNode configuration; private JsonNode configuration;
private RuleNodeId externalId; private RuleNodeId externalId;
@ -105,7 +105,7 @@ public class RuleNode extends BaseDataWithAdditionalInfo<RuleNodeId> implements
return super.getCreatedTime(); return super.getCreatedTime();
} }
@Schema(description = "Additional parameters of the rule node. Contains 'layoutX' and 'layoutY' properties for visualization.", implementation = JsonNode.class) @Schema(description = "Additional parameters of the rule node. Contains 'layoutX' and 'layoutY' properties for visualization.")
@Override @Override
public JsonNode getAdditionalInfo() { public JsonNode getAdditionalInfo() {
return super.getAdditionalInfo(); return super.getAdditionalInfo();

2
common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/WidgetsBundleExportData.java

@ -32,7 +32,7 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class WidgetsBundleExportData extends EntityExportData<WidgetsBundle> { public class WidgetsBundleExportData extends EntityExportData<WidgetsBundle> {
@ArraySchema(schema = @Schema(description = "List of widgets in the bundle", implementation = JsonNode.class)) @ArraySchema(schema = @Schema(description = "List of widgets in the bundle"))
@JsonProperty(index = 3) @JsonProperty(index = 3)
private List<ObjectNode> widgets; private List<ObjectNode> widgets;

Loading…
Cancel
Save