added queue swagger doc
This commit is contained in:
parent
2653732cf8
commit
5fafa3fe72
@ -112,6 +112,10 @@ public class ControllerConstants {
|
|||||||
protected static final String DEVICE_PROFILE_INFO_DESCRIPTION = "Device Profile Info is a lightweight object that includes main information about Device Profile excluding the heavyweight configuration object. ";
|
protected static final String DEVICE_PROFILE_INFO_DESCRIPTION = "Device Profile Info is a lightweight object that includes main information about Device Profile excluding the heavyweight configuration object. ";
|
||||||
protected static final String QUEUE_SERVICE_TYPE_DESCRIPTION = "Service type (implemented only for the TB-RULE-ENGINE)";
|
protected static final String QUEUE_SERVICE_TYPE_DESCRIPTION = "Service type (implemented only for the TB-RULE-ENGINE)";
|
||||||
protected static final String QUEUE_SERVICE_TYPE_ALLOWABLE_VALUES = "TB-RULE-ENGINE, TB-CORE, TB-TRANSPORT, JS-EXECUTOR";
|
protected static final String QUEUE_SERVICE_TYPE_ALLOWABLE_VALUES = "TB-RULE-ENGINE, TB-CORE, TB-TRANSPORT, JS-EXECUTOR";
|
||||||
|
protected static final String QUEUE_QUEUE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'substring' filter based on the queue name.";
|
||||||
|
protected static final String QUEUE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, name, topic";
|
||||||
|
protected static final String QUEUE_ID_PARAM_DESCRIPTION = "A string value representing the queue id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
|
||||||
|
protected static final String QUEUE_NAME_PARAM_DESCRIPTION = "A string value representing the queue id. For example, 'Main'";
|
||||||
protected static final String OTA_PACKAGE_INFO_DESCRIPTION = "OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight data. ";
|
protected static final String OTA_PACKAGE_INFO_DESCRIPTION = "OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight data. ";
|
||||||
protected static final String OTA_PACKAGE_DESCRIPTION = "OTA Package is a heavyweight object that includes main information about the OTA Package and also data. ";
|
protected static final String OTA_PACKAGE_DESCRIPTION = "OTA Package is a heavyweight object that includes main information about the OTA Package and also data. ";
|
||||||
protected static final String OTA_PACKAGE_CHECKSUM_ALGORITHM_ALLOWABLE_VALUES = "MD5, SHA256, SHA384, SHA512, CRC32, MURMUR3_32, MURMUR3_128";
|
protected static final String OTA_PACKAGE_CHECKSUM_ALGORITHM_ALLOWABLE_VALUES = "MD5, SHA256, SHA384, SHA512, CRC32, MURMUR3_32, MURMUR3_128";
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.controller;
|
package org.thingsboard.server.controller;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -37,6 +39,22 @@ import org.thingsboard.server.service.security.permission.Resource;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_ID_PARAM_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_NAME_PARAM_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_QUEUE_TEXT_SEARCH_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_SERVICE_TYPE_ALLOWABLE_VALUES;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_SERVICE_TYPE_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.QUEUE_SORT_PROPERTY_ALLOWABLE_VALUES;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.SORT_ORDER_ALLOWABLE_VALUES;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.SORT_ORDER_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.SORT_PROPERTY_DESCRIPTION;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.SYSTEM_AUTHORITY_PARAGRAPH;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH;
|
||||||
|
import static org.thingsboard.server.controller.ControllerConstants.UUID_WIKI_LINK;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@TbCoreComponent
|
@TbCoreComponent
|
||||||
@RequestMapping("/api")
|
@RequestMapping("/api")
|
||||||
@ -45,14 +63,23 @@ public class QueueController extends BaseController {
|
|||||||
|
|
||||||
private final TbQueueService tbQueueService;
|
private final TbQueueService tbQueueService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Queues (getTenantQueuesByServiceType)",
|
||||||
|
notes = "Returns a page of queues registered in the platform. " +
|
||||||
|
PAGE_DATA_PARAMETERS + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/queues", params = {"serviceType", "pageSize", "page"}, method = RequestMethod.GET)
|
@RequestMapping(value = "/queues", params = {"serviceType", "pageSize", "page"}, method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public PageData<Queue> getTenantQueuesByServiceType(@RequestParam String serviceType,
|
public PageData<Queue> getTenantQueuesByServiceType(@ApiParam(value = QUEUE_SERVICE_TYPE_DESCRIPTION, allowableValues = QUEUE_SERVICE_TYPE_ALLOWABLE_VALUES, required = true)
|
||||||
|
@RequestParam String serviceType,
|
||||||
|
@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true)
|
||||||
@RequestParam int pageSize,
|
@RequestParam int pageSize,
|
||||||
|
@ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true)
|
||||||
@RequestParam int page,
|
@RequestParam int page,
|
||||||
|
@ApiParam(value = QUEUE_QUEUE_TEXT_SEARCH_DESCRIPTION)
|
||||||
@RequestParam(required = false) String textSearch,
|
@RequestParam(required = false) String textSearch,
|
||||||
|
@ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = QUEUE_SORT_PROPERTY_ALLOWABLE_VALUES)
|
||||||
@RequestParam(required = false) String sortProperty,
|
@RequestParam(required = false) String sortProperty,
|
||||||
|
@ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES)
|
||||||
@RequestParam(required = false) String sortOrder) throws ThingsboardException {
|
@RequestParam(required = false) String sortOrder) throws ThingsboardException {
|
||||||
checkParameter("serviceType", serviceType);
|
checkParameter("serviceType", serviceType);
|
||||||
PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder);
|
PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder);
|
||||||
@ -65,29 +92,44 @@ public class QueueController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Queue (getQueueById)",
|
||||||
|
notes = "Fetch the Queue object based on the provided Queue Id. " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/queues/{queueId}", method = RequestMethod.GET)
|
@RequestMapping(value = "/queues/{queueId}", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Queue getQueueById(@PathVariable("queueId") String queueIdStr) throws ThingsboardException {
|
public Queue getQueueById(@ApiParam(value = QUEUE_ID_PARAM_DESCRIPTION)
|
||||||
|
@PathVariable("queueId") String queueIdStr) throws ThingsboardException {
|
||||||
checkParameter("queueId", queueIdStr);
|
checkParameter("queueId", queueIdStr);
|
||||||
QueueId queueId = new QueueId(UUID.fromString(queueIdStr));
|
QueueId queueId = new QueueId(UUID.fromString(queueIdStr));
|
||||||
checkQueueId(queueId, Operation.READ);
|
checkQueueId(queueId, Operation.READ);
|
||||||
return checkNotNull(queueService.findQueueById(getTenantId(), queueId));
|
return checkNotNull(queueService.findQueueById(getTenantId(), queueId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Queue (getQueueByName)",
|
||||||
|
notes = "Fetch the Queue object based on the provided Queue name. " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/queues/name/{queueName}", method = RequestMethod.GET)
|
@RequestMapping(value = "/queues/name/{queueName}", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Queue getQueueByName(@PathVariable("queueName") String queueName) throws ThingsboardException {
|
public Queue getQueueByName(@ApiParam(value = QUEUE_NAME_PARAM_DESCRIPTION)
|
||||||
|
@PathVariable("queueName") String queueName) throws ThingsboardException {
|
||||||
checkParameter("queueName", queueName);
|
checkParameter("queueName", queueName);
|
||||||
return checkNotNull(queueService.findQueueByTenantIdAndName(getTenantId(), queueName));
|
return checkNotNull(queueService.findQueueByTenantIdAndName(getTenantId(), queueName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Create Or Update Queue (saveQueue)",
|
||||||
|
notes = "Create or update the Queue. When creating queue, platform generates Queue Id as " + UUID_WIKI_LINK +
|
||||||
|
"Specify existing Queue id to update the queue. " +
|
||||||
|
"Referencing non-existing Queue Id will cause 'Not Found' error." +
|
||||||
|
"\n\nQueue name is unique in the scope of sysadmin. " +
|
||||||
|
"Remove 'id', 'tenantId' from the request body example (below) to create new Queue entity. " +
|
||||||
|
SYSTEM_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN')")
|
||||||
@RequestMapping(value = "/queues", params = {"serviceType"}, method = RequestMethod.POST)
|
@RequestMapping(value = "/queues", params = {"serviceType"}, method = RequestMethod.POST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
|
|
||||||
public Queue saveQueue(@RequestBody Queue queue,
|
public Queue saveQueue(@ApiParam(value = "A JSON value representing the queue.")
|
||||||
|
@RequestBody Queue queue,
|
||||||
|
@ApiParam(value = QUEUE_SERVICE_TYPE_DESCRIPTION, allowableValues = QUEUE_SERVICE_TYPE_ALLOWABLE_VALUES, required = true)
|
||||||
@RequestParam String serviceType) throws ThingsboardException {
|
@RequestParam String serviceType) throws ThingsboardException {
|
||||||
checkParameter("serviceType", serviceType);
|
checkParameter("serviceType", serviceType);
|
||||||
queue.setTenantId(getCurrentUser().getTenantId());
|
queue.setTenantId(getCurrentUser().getTenantId());
|
||||||
@ -106,10 +148,12 @@ public class QueueController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Delete Queue (deleteQueue)", notes = "Deletes the Queue. " + SYSTEM_AUTHORITY_PARAGRAPH)
|
||||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN')")
|
||||||
@RequestMapping(value = "/queues/{queueId}", method = RequestMethod.DELETE)
|
@RequestMapping(value = "/queues/{queueId}", method = RequestMethod.DELETE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public void deleteQueue(@PathVariable("queueId") String queueIdStr) throws ThingsboardException {
|
public void deleteQueue(@ApiParam(value = QUEUE_ID_PARAM_DESCRIPTION)
|
||||||
|
@PathVariable("queueId") String queueIdStr) throws ThingsboardException {
|
||||||
checkParameter("queueId", queueIdStr);
|
checkParameter("queueId", queueIdStr);
|
||||||
QueueId queueId = new QueueId(toUUID(queueIdStr));
|
QueueId queueId = new QueueId(toUUID(queueIdStr));
|
||||||
checkQueueId(queueId, Operation.DELETE);
|
checkQueueId(queueId, Operation.DELETE);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user