Commit 427e7ac0944b0247b21f8f2cfb3214fe463907af
1 parent
c68cbff3
Added swagger API for edge event controller. Added search text usage for edge ev…
…ent type. Code cleanup
Showing
5 changed files
with
24 additions
and
6 deletions
@@ -174,7 +174,7 @@ public abstract class BaseController { | @@ -174,7 +174,7 @@ public abstract class BaseController { | ||
174 | protected final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC"; | 174 | protected final String SORT_ORDER_ALLOWABLE_VALUES = "ASC, DESC"; |
175 | 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. "; | 175 | 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. "; |
176 | 176 | ||
177 | - | 177 | + protected final String EDGE_EVENT_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'startsWith' filter based on the edge event type name."; |
178 | 178 | ||
179 | public static final String INCORRECT_TENANT_ID = "Incorrect tenantId "; | 179 | public static final String INCORRECT_TENANT_ID = "Incorrect tenantId "; |
180 | protected static final String DEFAULT_DASHBOARD = "defaultDashboardId"; | 180 | protected static final String DEFAULT_DASHBOARD = "defaultDashboardId"; |
@@ -15,6 +15,8 @@ | @@ -15,6 +15,8 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.controller; | 16 | package org.thingsboard.server.controller; |
17 | 17 | ||
18 | +import io.swagger.annotations.ApiOperation; | ||
19 | +import io.swagger.annotations.ApiParam; | ||
18 | import lombok.extern.slf4j.Slf4j; | 20 | import lombok.extern.slf4j.Slf4j; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 21 | import org.springframework.beans.factory.annotation.Autowired; |
20 | import org.springframework.security.access.prepost.PreAuthorize; | 22 | import org.springframework.security.access.prepost.PreAuthorize; |
@@ -45,17 +47,28 @@ public class EdgeEventController extends BaseController { | @@ -45,17 +47,28 @@ public class EdgeEventController extends BaseController { | ||
45 | 47 | ||
46 | public static final String EDGE_ID = "edgeId"; | 48 | public static final String EDGE_ID = "edgeId"; |
47 | 49 | ||
50 | + @ApiOperation(value = "Get Edge Events (getEdgeEvents)", | ||
51 | + notes = "Returns a page of edge events for the requested edge. " + | ||
52 | + PAGE_DATA_PARAMETERS) | ||
48 | @PreAuthorize("hasAuthority('TENANT_ADMIN')") | 53 | @PreAuthorize("hasAuthority('TENANT_ADMIN')") |
49 | @RequestMapping(value = "/edge/{edgeId}/events", method = RequestMethod.GET) | 54 | @RequestMapping(value = "/edge/{edgeId}/events", method = RequestMethod.GET) |
50 | @ResponseBody | 55 | @ResponseBody |
51 | public PageData<EdgeEvent> getEdgeEvents( | 56 | public PageData<EdgeEvent> getEdgeEvents( |
57 | + @ApiParam(value = EDGE_ID_PARAM_DESCRIPTION) | ||
52 | @PathVariable(EDGE_ID) String strEdgeId, | 58 | @PathVariable(EDGE_ID) String strEdgeId, |
59 | + @ApiParam(value = PAGE_SIZE_DESCRIPTION) | ||
53 | @RequestParam int pageSize, | 60 | @RequestParam int pageSize, |
61 | + @ApiParam(value = PAGE_NUMBER_DESCRIPTION) | ||
54 | @RequestParam int page, | 62 | @RequestParam int page, |
63 | + @ApiParam(value = EDGE_EVENT_TEXT_SEARCH_DESCRIPTION) | ||
55 | @RequestParam(required = false) String textSearch, | 64 | @RequestParam(required = false) String textSearch, |
65 | + @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = SORT_PROPERTY_ALLOWABLE_VALUES) | ||
56 | @RequestParam(required = false) String sortProperty, | 66 | @RequestParam(required = false) String sortProperty, |
67 | + @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) | ||
57 | @RequestParam(required = false) String sortOrder, | 68 | @RequestParam(required = false) String sortOrder, |
69 | + @ApiParam(value = "Timestamp. Edge events with creation time before it won't be queried") | ||
58 | @RequestParam(required = false) Long startTime, | 70 | @RequestParam(required = false) Long startTime, |
71 | + @ApiParam(value = "Timestamp. Edge events with creation time after it won't be queried") | ||
59 | @RequestParam(required = false) Long endTime) throws ThingsboardException { | 72 | @RequestParam(required = false) Long endTime) throws ThingsboardException { |
60 | checkParameter(EDGE_ID, strEdgeId); | 73 | checkParameter(EDGE_ID, strEdgeId); |
61 | try { | 74 | try { |
@@ -15,7 +15,6 @@ | @@ -15,7 +15,6 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.dao.model.sql; | 16 | package org.thingsboard.server.dao.model.sql; |
17 | 17 | ||
18 | -import com.datastax.oss.driver.api.core.uuid.Uuids; | ||
19 | import com.fasterxml.jackson.databind.JsonNode; | 18 | import com.fasterxml.jackson.databind.JsonNode; |
20 | import lombok.Data; | 19 | import lombok.Data; |
21 | import lombok.EqualsAndHashCode; | 20 | import lombok.EqualsAndHashCode; |
@@ -40,15 +39,14 @@ import javax.persistence.Table; | @@ -40,15 +39,14 @@ import javax.persistence.Table; | ||
40 | import java.util.UUID; | 39 | import java.util.UUID; |
41 | 40 | ||
42 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ACTION_PROPERTY; | 41 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ACTION_PROPERTY; |
42 | +import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_BODY_PROPERTY; | ||
43 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_COLUMN_FAMILY_NAME; | 43 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_COLUMN_FAMILY_NAME; |
44 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_EDGE_ID_PROPERTY; | 44 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_EDGE_ID_PROPERTY; |
45 | -import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_BODY_PROPERTY; | ||
46 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ENTITY_ID_PROPERTY; | 45 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_ENTITY_ID_PROPERTY; |
47 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TENANT_ID_PROPERTY; | 46 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TENANT_ID_PROPERTY; |
48 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TYPE_PROPERTY; | 47 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_TYPE_PROPERTY; |
49 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_UID_PROPERTY; | 48 | import static org.thingsboard.server.dao.model.ModelConstants.EDGE_EVENT_UID_PROPERTY; |
50 | import static org.thingsboard.server.dao.model.ModelConstants.EPOCH_DIFF; | 49 | import static org.thingsboard.server.dao.model.ModelConstants.EPOCH_DIFF; |
51 | -import static org.thingsboard.server.dao.model.ModelConstants.EVENT_UID_PROPERTY; | ||
52 | import static org.thingsboard.server.dao.model.ModelConstants.TS_COLUMN; | 50 | import static org.thingsboard.server.dao.model.ModelConstants.TS_COLUMN; |
53 | 51 | ||
54 | @Data | 52 | @Data |
@@ -31,10 +31,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven | @@ -31,10 +31,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven | ||
31 | "e.tenantId = :tenantId " + | 31 | "e.tenantId = :tenantId " + |
32 | "AND e.edgeId = :edgeId " + | 32 | "AND e.edgeId = :edgeId " + |
33 | "AND (:startTime IS NULL OR e.createdTime >= :startTime) " + | 33 | "AND (:startTime IS NULL OR e.createdTime >= :startTime) " + |
34 | - "AND (:endTime IS NULL OR e.createdTime <= :endTime) " | 34 | + "AND (:endTime IS NULL OR e.createdTime <= :endTime) " + |
35 | + "AND LOWER(e.edgeEventType) LIKE LOWER(CONCAT(:textSearch, '%'))" | ||
35 | ) | 36 | ) |
36 | Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeId(@Param("tenantId") UUID tenantId, | 37 | Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeId(@Param("tenantId") UUID tenantId, |
37 | @Param("edgeId") UUID edgeId, | 38 | @Param("edgeId") UUID edgeId, |
39 | + @Param("textSearch") String textSearch, | ||
38 | @Param("startTime") Long startTime, | 40 | @Param("startTime") Long startTime, |
39 | @Param("endTime") Long endTime, | 41 | @Param("endTime") Long endTime, |
40 | Pageable pageable); | 42 | Pageable pageable); |
@@ -44,10 +46,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven | @@ -44,10 +46,12 @@ public interface EdgeEventRepository extends PagingAndSortingRepository<EdgeEven | ||
44 | "AND e.edgeId = :edgeId " + | 46 | "AND e.edgeId = :edgeId " + |
45 | "AND (:startTime IS NULL OR e.createdTime >= :startTime) " + | 47 | "AND (:startTime IS NULL OR e.createdTime >= :startTime) " + |
46 | "AND (:endTime IS NULL OR e.createdTime <= :endTime) " + | 48 | "AND (:endTime IS NULL OR e.createdTime <= :endTime) " + |
47 | - "AND e.edgeEventAction <> 'TIMESERIES_UPDATED'" | 49 | + "AND e.edgeEventAction <> 'TIMESERIES_UPDATED' " + |
50 | + "AND LOWER(e.edgeEventType) LIKE LOWER(CONCAT(:textSearch, '%'))" | ||
48 | ) | 51 | ) |
49 | Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(@Param("tenantId") UUID tenantId, | 52 | Page<EdgeEventEntity> findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated(@Param("tenantId") UUID tenantId, |
50 | @Param("edgeId") UUID edgeId, | 53 | @Param("edgeId") UUID edgeId, |
54 | + @Param("textSearch") String textSearch, | ||
51 | @Param("startTime") Long startTime, | 55 | @Param("startTime") Long startTime, |
52 | @Param("endTime") Long endTime, | 56 | @Param("endTime") Long endTime, |
53 | Pageable pageable); | 57 | Pageable pageable); |
@@ -39,6 +39,7 @@ import java.sql.Connection; | @@ -39,6 +39,7 @@ import java.sql.Connection; | ||
39 | import java.sql.PreparedStatement; | 39 | import java.sql.PreparedStatement; |
40 | import java.sql.ResultSet; | 40 | import java.sql.ResultSet; |
41 | import java.sql.SQLException; | 41 | import java.sql.SQLException; |
42 | +import java.util.Objects; | ||
42 | import java.util.Optional; | 43 | import java.util.Optional; |
43 | import java.util.UUID; | 44 | import java.util.UUID; |
44 | import java.util.concurrent.ConcurrentHashMap; | 45 | import java.util.concurrent.ConcurrentHashMap; |
@@ -107,6 +108,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit | @@ -107,6 +108,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit | ||
107 | .findEdgeEventsByTenantIdAndEdgeId( | 108 | .findEdgeEventsByTenantIdAndEdgeId( |
108 | tenantId, | 109 | tenantId, |
109 | edgeId.getId(), | 110 | edgeId.getId(), |
111 | + Objects.toString(pageLink.getTextSearch(), ""), | ||
110 | pageLink.getStartTime(), | 112 | pageLink.getStartTime(), |
111 | pageLink.getEndTime(), | 113 | pageLink.getEndTime(), |
112 | DaoUtil.toPageable(pageLink))); | 114 | DaoUtil.toPageable(pageLink))); |
@@ -116,6 +118,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit | @@ -116,6 +118,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTextDao<EdgeEventEntit | ||
116 | .findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated( | 118 | .findEdgeEventsByTenantIdAndEdgeIdWithoutTimeseriesUpdated( |
117 | tenantId, | 119 | tenantId, |
118 | edgeId.getId(), | 120 | edgeId.getId(), |
121 | + Objects.toString(pageLink.getTextSearch(), ""), | ||
119 | pageLink.getStartTime(), | 122 | pageLink.getStartTime(), |
120 | pageLink.getEndTime(), | 123 | pageLink.getEndTime(), |
121 | DaoUtil.toPageable(pageLink))); | 124 | DaoUtil.toPageable(pageLink))); |