Added swagger API for edge event controller. Added search text usage for edge event type. Code cleanup
This commit is contained in:
parent
c68cbff335
commit
427e7ac094
@ -174,7 +174,7 @@ public abstract class BaseController {
|
|||||||
protected final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC";
|
protected final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC";
|
||||||
protected final String DEVICE_INFO_DESCRIPTION = "Device Info is an extension of the default Device object that contains information about the assigned customer name and device profile name. ";
|
protected final String DEVICE_INFO_DESCRIPTION = "Device Info is an extension of the default Device object that contains information about the assigned customer name and device profile name. ";
|
||||||
|
|
||||||
|
protected final String EDGE_EVENT_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the edge event type name.";
|
||||||
|
|
||||||
public static final String INCORRECT_TENANT_ID = "Incorrect tenantId ";
|
public static final String INCORRECT_TENANT_ID = "Incorrect tenantId ";
|
||||||
protected static final String DEFAULT_DASHBOARD = "defaultDashboardId";
|
protected static final String DEFAULT_DASHBOARD = "defaultDashboardId";
|
||||||
|
|||||||
@ -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.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
@ -45,17 +47,28 @@ public class EdgeEventController extends BaseController {
|
|||||||
|
|
||||||
public static final String EDGE_ID = "edgeId";
|
public static final String EDGE_ID = "edgeId";
|
||||||
|
|
||||||
|
@ApiOperation(value = "Get Edge Events (getEdgeEvents)",
|
||||||
|
notes = "Returns a page of edge events for the requested edge. " +
|
||||||
|
PAGE_DATA_PARAMETERS)
|
||||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/edge/{edgeId}/events", method = RequestMethod.GET)
|
@RequestMapping(value = "/edge/{edgeId}/events", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public PageData<EdgeEvent> getEdgeEvents(
|
public PageData<EdgeEvent> getEdgeEvents(
|
||||||
|
@ApiParam(value = EDGE_ID_PARAM_DESCRIPTION)
|
||||||
@PathVariable(EDGE_ID) String strEdgeId,
|
@PathVariable(EDGE_ID) String strEdgeId,
|
||||||
|
@ApiParam(value = PAGE_SIZE_DESCRIPTION)
|
||||||
@RequestParam int pageSize,
|
@RequestParam int pageSize,
|
||||||
|
@ApiParam(value = PAGE_NUMBER_DESCRIPTION)
|
||||||
@RequestParam int page,
|
@RequestParam int page,
|
||||||
|
@ApiParam(value = EDGE_EVENT_TEXT_SEARCH_DESCRIPTION)
|
||||||
@RequestParam(required = false) String textSearch,
|
@RequestParam(required = false) String textSearch,
|
||||||
|
@ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = 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,
|
@RequestParam(required = false) String sortOrder,
|
||||||
|
@ApiParam(value = "Timestamp. Edge events with creation time before it won't be queried")
|
||||||
@RequestParam(required = false) Long startTime,
|
@RequestParam(required = false) Long startTime,
|
||||||
|
@ApiParam(value = "Timestamp. Edge events with creation time after it won't be queried")
|
||||||
@RequestParam(required = false) Long endTime) throws ThingsboardException {
|
@RequestParam(required = false) Long endTime) throws ThingsboardException {
|
||||||
checkParameter(EDGE_ID, strEdgeId);
|
checkParameter(EDGE_ID, strEdgeId);
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.dao.model.sql;
|
package org.thingsboard.server.dao.model.sql;
|
||||||
|
|
||||||
import com.datastax.oss.driver.api.core.uuid.Uuids;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -40,15 +39,14 @@ import javax.persistence.Table;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ACTION_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ACTION_PROPERTY;
|
||||||
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_BODY_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_COLUMN_FAMILY_NAME;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_COLUMN_FAMILY_NAME;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_EDGE_ID_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_EDGE_ID_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_BODY_PROPERTY;
|
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ENTITY_ID_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ENTITY_ID_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TENANT_ID_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TENANT_ID_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TYPE_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TYPE_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_UID_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_UID_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EPOCH_DIFF;
|
import static org.thingsboard.server.dao.model.ModelConstants.EPOCH_DIFF;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.EVENT_UID_PROPERTY;
|
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.TS_COLUMN;
|
import static org.thingsboard.server.dao.model.ModelConstants.TS_COLUMN;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -31,10 +31,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven
|
|||||||
"e.tenantId = :tenantId " +
|
"e.tenantId = :tenantId " +
|
||||||
"AND e.edgeId = :edgeId " +
|
"AND e.edgeId = :edgeId " +
|
||||||
"AND (:startTime IS NULL OR e.createdTime >= :startTime) " +
|
"AND (:startTime IS NULL OR e.createdTime >= :startTime) " +
|
||||||
"AND (:endTime IS NULL OR e.createdTime <= :endTime) "
|
"AND (:endTime IS NULL OR e.createdTime <= :endTime) " +
|
||||||
|
"AND LOWER(e.edgeEventType) LIKE LOWER(CONCAT(:textSearch, '%'))"
|
||||||
)
|
)
|
||||||
Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeId(@Param("tenantId") UUID tenantId,
|
Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeId(@Param("tenantId") UUID tenantId,
|
||||||
@Param("edgeId") UUID edgeId,
|
@Param("edgeId") UUID edgeId,
|
||||||
|
@Param("textSearch") String textSearch,
|
||||||
@Param("startTime") Long startTime,
|
@Param("startTime") Long startTime,
|
||||||
@Param("endTime") Long endTime,
|
@Param("endTime") Long endTime,
|
||||||
Pageable pageable);
|
Pageable pageable);
|
||||||
@ -44,10 +46,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven
|
|||||||
"AND e.edgeId = :edgeId " +
|
"AND e.edgeId = :edgeId " +
|
||||||
"AND (:startTime IS NULL OR e.createdTime >= :startTime) " +
|
"AND (:startTime IS NULL OR e.createdTime >= :startTime) " +
|
||||||
"AND (:endTime IS NULL OR e.createdTime <= :endTime) " +
|
"AND (:endTime IS NULL OR e.createdTime <= :endTime) " +
|
||||||
"AND e.edgeEventAction <> 'TIMESERIES_UPDATED'"
|
"AND e.edgeEventAction <> 'TIMESERIES_UPDATED' " +
|
||||||
|
"AND LOWER(e.edgeEventType) LIKE LOWER(CONCAT(:textSearch, '%'))"
|
||||||
)
|
)
|
||||||
Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(@Param("tenantId") UUID tenantId,
|
Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(@Param("tenantId") UUID tenantId,
|
||||||
@Param("edgeId") UUID edgeId,
|
@Param("edgeId") UUID edgeId,
|
||||||
|
@Param("textSearch") String textSearch,
|
||||||
@Param("startTime") Long startTime,
|
@Param("startTime") Long startTime,
|
||||||
@Param("endTime") Long endTime,
|
@Param("endTime") Long endTime,
|
||||||
Pageable pageable);
|
Pageable pageable);
|
||||||
|
|||||||
@ -39,6 +39,7 @@ import java.sql.Connection;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@ -107,6 +108,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit
|
|||||||
.findEdgeEventsByTenantIdAndEdgeId(
|
.findEdgeEventsByTenantIdAndEdgeId(
|
||||||
tenantId,
|
tenantId,
|
||||||
edgeId.getId(),
|
edgeId.getId(),
|
||||||
|
Objects.toString(pageLink.getTextSearch(), ""),
|
||||||
pageLink.getStartTime(),
|
pageLink.getStartTime(),
|
||||||
pageLink.getEndTime(),
|
pageLink.getEndTime(),
|
||||||
DaoUtil.toPageable(pageLink)));
|
DaoUtil.toPageable(pageLink)));
|
||||||
@ -116,6 +118,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit
|
|||||||
.findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(
|
.findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(
|
||||||
tenantId,
|
tenantId,
|
||||||
edgeId.getId(),
|
edgeId.getId(),
|
||||||
|
Objects.toString(pageLink.getTextSearch(), ""),
|
||||||
pageLink.getStartTime(),
|
pageLink.getStartTime(),
|
||||||
pageLink.getEndTime(),
|
pageLink.getEndTime(),
|
||||||
DaoUtil.toPageable(pageLink)));
|
DaoUtil.toPageable(pageLink)));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user