Merge pull request #10971 from dashevchenko/swaggerArraysFix
Swagger: fixed the way arrays are displayed in request param
This commit is contained in:
commit
4ef3fea62e
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
@ -350,11 +351,11 @@ public class AlarmController extends BaseController {
|
||||
@PathVariable(ENTITY_TYPE) String strEntityType,
|
||||
@Parameter(description = ENTITY_ID_PARAM_DESCRIPTION, required = true)
|
||||
@PathVariable(ENTITY_ID) String strEntityId,
|
||||
@Parameter(description = ALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"ANY", "ACTIVE", "CLEARED", "ACK", "UNACK"}))
|
||||
@Parameter(description = ALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string", allowableValues = {"ANY", "ACTIVE", "CLEARED", "ACK", "UNACK"})))
|
||||
@RequestParam(required = false) String[] statusList,
|
||||
@Parameter(description = ALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"}))
|
||||
@Parameter(description = ALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string", allowableValues = {"CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"})))
|
||||
@RequestParam(required = false) String[] severityList,
|
||||
@Parameter(description = ALARM_QUERY_TYPE_ARRAY_DESCRIPTION)
|
||||
@Parameter(description = ALARM_QUERY_TYPE_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam(required = false) String[] typeList,
|
||||
@Parameter(description = ALARM_QUERY_ASSIGNEE_DESCRIPTION)
|
||||
@RequestParam(required = false) String assigneeId,
|
||||
@ -412,11 +413,11 @@ public class AlarmController extends BaseController {
|
||||
@RequestMapping(value = "/v2/alarms", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public PageData<AlarmInfo> getAllAlarmsV2(
|
||||
@Parameter(description = ALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"ANY", "ACTIVE", "CLEARED", "ACK", "UNACK"}))
|
||||
@Parameter(description = ALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string", allowableValues = {"ANY", "ACTIVE", "CLEARED", "ACK", "UNACK"})))
|
||||
@RequestParam(required = false) String[] statusList,
|
||||
@Parameter(description = ALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"}))
|
||||
@Parameter(description = ALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string", allowableValues = {"CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"})))
|
||||
@RequestParam(required = false) String[] severityList,
|
||||
@Parameter(description = ALARM_QUERY_TYPE_ARRAY_DESCRIPTION)
|
||||
@Parameter(description = ALARM_QUERY_TYPE_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam(required = false) String[] typeList,
|
||||
@Parameter(description = ALARM_QUERY_ASSIGNEE_DESCRIPTION)
|
||||
@RequestParam(required = false) String assigneeId,
|
||||
|
||||
@ -17,6 +17,7 @@ package org.thingsboard.server.controller;
|
||||
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
@ -354,7 +355,7 @@ public class AssetController extends BaseController {
|
||||
@RequestMapping(value = "/assets", params = {"assetIds"}, method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public List<Asset> getAssetsByIds(
|
||||
@Parameter(description = "A list of assets ids, separated by comma ','")
|
||||
@Parameter(description = "A list of assets ids, separated by comma ','", array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam("assetIds") String[] strAssetIds) throws ThingsboardException, ExecutionException, InterruptedException {
|
||||
checkArrayParameter("assetIds", strAssetIds);
|
||||
SecurityUser user = getCurrentUser();
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -83,7 +84,7 @@ public class ComponentDescriptorController extends BaseController {
|
||||
@RequestMapping(value = "/components", params = {"componentTypes"}, method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public List<ComponentDescriptor> getComponentDescriptorsByTypes(
|
||||
@Parameter(description = "List of types of the Rule Nodes, (ENRICHMENT, FILTER, TRANSFORMATION, ACTION or EXTERNAL)", required = true)
|
||||
@Parameter(description = "List of types of the Rule Nodes, (ENRICHMENT, FILTER, TRANSFORMATION, ACTION or EXTERNAL)", array = @ArraySchema(schema = @Schema(type = "string")), required = true)
|
||||
@RequestParam("componentTypes") String[] strComponentTypes,
|
||||
@Parameter(description = "Type of the Rule Chain", schema = @Schema(allowableValues = {"CORE", "EDGE"}))
|
||||
@RequestParam(value = "ruleChainType", required = false) String strRuleChainType) throws ThingsboardException {
|
||||
|
||||
@ -20,6 +20,7 @@ import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
@ -488,7 +489,7 @@ public class DeviceController extends BaseController {
|
||||
@RequestMapping(value = "/devices", params = {"deviceIds"}, method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public List<Device> getDevicesByIds(
|
||||
@Parameter(description = "A list of devices ids, separated by comma ','")
|
||||
@Parameter(description = "A list of devices ids, separated by comma ','", array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam("deviceIds") String[] strDeviceIds) throws ThingsboardException, ExecutionException, InterruptedException {
|
||||
checkArrayParameter("deviceIds", strDeviceIds);
|
||||
SecurityUser user = getCurrentUser();
|
||||
|
||||
@ -17,6 +17,7 @@ package org.thingsboard.server.controller;
|
||||
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
@ -426,7 +427,7 @@ public class EdgeController extends BaseController {
|
||||
@RequestMapping(value = "/edges", params = {"edgeIds"}, method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public List<Edge> getEdgesByIds(
|
||||
@Parameter(description = "A list of edges ids, separated by comma ','", required = true)
|
||||
@Parameter(description = "A list of edges ids, separated by comma ','", array = @ArraySchema(schema = @Schema(type = "string")), required = true)
|
||||
@RequestParam("edgeIds") String[] strEdgeIds) throws ThingsboardException, ExecutionException, InterruptedException {
|
||||
checkArrayParameter("edgeIds", strEdgeIds);
|
||||
SecurityUser user = getCurrentUser();
|
||||
|
||||
@ -16,6 +16,8 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -156,7 +158,7 @@ public class NotificationTargetController extends BaseController {
|
||||
SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||
@GetMapping(value = "/targets", params = {"ids"})
|
||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||
public List<NotificationTarget> getNotificationTargetsByIds(@Parameter(description = "Comma-separated list of uuids representing targets ids", required = true)
|
||||
public List<NotificationTarget> getNotificationTargetsByIds(@Parameter(description = "Comma-separated list of uuids representing targets ids", array = @ArraySchema(schema = @Schema(type = "string")), required = true)
|
||||
@RequestParam("ids") UUID[] ids,
|
||||
@AuthenticationPrincipal SecurityUser user) {
|
||||
// PE: generic permission
|
||||
|
||||
@ -16,6 +16,8 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -147,7 +149,7 @@ public class NotificationTemplateController extends BaseController {
|
||||
@RequestParam(required = false) String sortProperty,
|
||||
@Parameter(description = SORT_ORDER_DESCRIPTION)
|
||||
@RequestParam(required = false) String sortOrder,
|
||||
@Parameter(description = "Comma-separated list of notification types to filter the templates")
|
||||
@Parameter(description = "Comma-separated list of notification types to filter the templates", array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam(required = false) NotificationType[] notificationTypes,
|
||||
@AuthenticationPrincipal SecurityUser user) throws ThingsboardException {
|
||||
// PE: generic permission
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@ -89,7 +90,7 @@ public class QueueStatsController extends BaseController {
|
||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||
@GetMapping(value = "/queueStats", params = {"queueStatsIds"})
|
||||
public List<QueueStats> getQueueStatsByIds(
|
||||
@Parameter(description = "A list of queue stats ids, separated by comma ','", required = true)
|
||||
@Parameter(description = "A list of queue stats ids, separated by comma ','", array = @ArraySchema(schema = @Schema(type = "string")), required = true)
|
||||
@RequestParam("queueStatsIds") String[] strQueueStatsIds) throws ThingsboardException {
|
||||
checkArrayParameter("queueStatsIds", strQueueStatsIds);
|
||||
List<QueueStatsId> queueStatsIds = new ArrayList<>();
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
@ -272,7 +273,7 @@ public class TbResourceController extends BaseController {
|
||||
@RequestParam String sortOrder,
|
||||
@Parameter(description = SORT_PROPERTY_DESCRIPTION, schema = @Schema(allowableValues = {"id", "name"}, requiredMode = Schema.RequiredMode.REQUIRED))
|
||||
@RequestParam String sortProperty,
|
||||
@Parameter(description = "LwM2M Object ids.", required = true)
|
||||
@Parameter(description = "LwM2M Object ids.", array = @ArraySchema(schema = @Schema(type = "string")), required = true)
|
||||
@RequestParam(required = false) String[] objectIds) throws ThingsboardException {
|
||||
return checkNotNull(tbResourceService.findLwM2mObject(getTenantId(), sortOrder, sortProperty, objectIds));
|
||||
}
|
||||
|
||||
@ -447,7 +447,7 @@ public class TelemetryController extends BaseController {
|
||||
public DeferredResult<ResponseEntity> saveEntityTelemetryWithTTL(
|
||||
@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,
|
||||
@Parameter(description = TELEMETRY_SCOPE_DESCRIPTION, required = true, schema = @Schema(allowableValues = "ANY")) @PathVariable("scope")AttributeScope scope,
|
||||
@Parameter(description = TELEMETRY_SCOPE_DESCRIPTION, required = true, schema = @Schema(allowableValues = "ANY")) @PathVariable("scope")String scope,
|
||||
@Parameter(description = "A long value representing TTL (Time to Live) parameter.", required = true)@PathVariable("ttl")Long ttl,
|
||||
@io.swagger.v3.oas.annotations.parameters.RequestBody(description = TELEMETRY_JSON_REQUEST_DESCRIPTION, required = true)@RequestBody String requestBody) throws ThingsboardException {
|
||||
EntityId entityId = EntityIdFactory.getByTypeAndId(entityType, entityIdStr);
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -251,7 +252,8 @@ public class TenantProfileController extends BaseController {
|
||||
|
||||
@GetMapping(value = "/tenantProfiles", params = {"ids"})
|
||||
@PreAuthorize("hasAuthority('SYS_ADMIN')")
|
||||
public List<TenantProfile> getTenantProfilesByIds(@RequestParam("ids") UUID[] ids) {
|
||||
public List<TenantProfile> getTenantProfilesByIds(@Parameter(description = "Comma-separated list of tenant profile ids", array = @ArraySchema(schema = @Schema(type = "string")))
|
||||
@RequestParam("ids") UUID[] ids) {
|
||||
return tenantProfileService.findTenantProfilesByIds(TenantId.SYS_TENANT_ID, ids);
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
package org.thingsboard.server.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -185,7 +186,7 @@ public class WidgetTypeController extends AutoCommitController {
|
||||
@RequestParam(required = false) Boolean fullSearch,
|
||||
@Parameter(description = DEPRECATED_FILTER_PARAM_DESCRIPTION, schema = @Schema(allowableValues = {"ALL", "ACTUAL", "DEPRECATED"}))
|
||||
@RequestParam(required = false) String deprecatedFilter,
|
||||
@Parameter(description = WIDGET_TYPE_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"timeseries", "latest", "control", "alarm", "static"}))
|
||||
@Parameter(description = WIDGET_TYPE_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(type = "string", allowableValues = {"timeseries", "latest", "control", "alarm", "static"})))
|
||||
@RequestParam(required = false) String[] widgetTypeList) throws ThingsboardException {
|
||||
PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder);
|
||||
List<String> widgetTypes = widgetTypeList != null ? Arrays.asList(widgetTypeList) : Collections.emptyList();
|
||||
@ -331,7 +332,7 @@ public class WidgetTypeController extends AutoCommitController {
|
||||
@RequestParam(required = false) Boolean fullSearch,
|
||||
@Parameter(description = DEPRECATED_FILTER_PARAM_DESCRIPTION, schema = @Schema(allowableValues = {"ALL", "ACTUAL", "DEPRECATED"}))
|
||||
@RequestParam(required = false) String deprecatedFilter,
|
||||
@Parameter(description = WIDGET_TYPE_ARRAY_DESCRIPTION, schema = @Schema(allowableValues = {"timeseries", "latest", "control", "alarm", "static"}))
|
||||
@Parameter(description = WIDGET_TYPE_ARRAY_DESCRIPTION, array = @ArraySchema(schema = @Schema(allowableValues = {"timeseries", "latest", "control", "alarm", "static"})))
|
||||
@RequestParam(required = false) String[] widgetTypeList) throws ThingsboardException {
|
||||
WidgetsBundleId widgetsBundleId = new WidgetsBundleId(toUUID(strWidgetsBundleId));
|
||||
PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user