Events clearing by filter
This commit is contained in:
		
							parent
							
								
									e718e31f63
								
							
						
					
					
						commit
						13a74c784e
					
				@ -242,15 +242,13 @@ public class EventController extends BaseController {
 | 
			
		||||
 | 
			
		||||
    @ApiOperation(value = "Clear Events (clearEvents)", notes = "Clears events for specified entity.")
 | 
			
		||||
    @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')")
 | 
			
		||||
    @RequestMapping(value = "/events/{entityType}/{entityId}/{eventType}/clear", method = RequestMethod.POST)
 | 
			
		||||
    @RequestMapping(value = "/events/{entityType}/{entityId}/clear", method = RequestMethod.POST)
 | 
			
		||||
    @ResponseStatus(HttpStatus.OK)
 | 
			
		||||
    public void clearEvents(
 | 
			
		||||
            @ApiParam(value = ENTITY_TYPE_PARAM_DESCRIPTION, required = true)
 | 
			
		||||
            @PathVariable(ENTITY_TYPE) String strEntityType,
 | 
			
		||||
            @ApiParam(value = ENTITY_ID_PARAM_DESCRIPTION, required = true)
 | 
			
		||||
            @PathVariable(ENTITY_ID) String strEntityId,
 | 
			
		||||
            @ApiParam(value = TENANT_ID_PARAM_DESCRIPTION, required = true)
 | 
			
		||||
            @PathVariable("eventType") String eventType,
 | 
			
		||||
            @ApiParam(value = EVENT_START_TIME_DESCRIPTION)
 | 
			
		||||
            @RequestParam("tenantId") String strTenantId,
 | 
			
		||||
            @ApiParam(value = "A string value representing event type", example = "STATS", required = true)
 | 
			
		||||
@ -266,7 +264,7 @@ public class EventController extends BaseController {
 | 
			
		||||
            EntityId entityId = EntityIdFactory.getByTypeAndId(strEntityType, strEntityId);
 | 
			
		||||
            checkEntityId(entityId, Operation.DELETE);
 | 
			
		||||
 | 
			
		||||
            eventService.removeEvents(tenantId, entityId, eventType, startTime, endTime);
 | 
			
		||||
            eventService.removeEvents(tenantId, entityId, eventFilter, startTime, endTime);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            throw handleException(e);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -46,7 +46,7 @@ public interface EventService {
 | 
			
		||||
 | 
			
		||||
    void removeEvents(TenantId tenantId, EntityId entityId);
 | 
			
		||||
 | 
			
		||||
    void removeEvents(TenantId tenantId, EntityId entityId, String eventType, Long startTime, Long endTime);
 | 
			
		||||
    void removeEvents(TenantId tenantId, EntityId entityId, EventFilter eventFilter, Long startTime, Long endTime);
 | 
			
		||||
 | 
			
		||||
    void cleanupEvents(long ttl, long debugTtl);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,6 @@ import org.thingsboard.server.dao.service.DataValidator;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
@ -125,14 +124,14 @@ public class BaseEventService implements EventService {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void removeEvents(TenantId tenantId, EntityId entityId, String eventType, Long startTime, Long endTime) {
 | 
			
		||||
    public void removeEvents(TenantId tenantId, EntityId entityId, EventFilter eventFilter, Long startTime, Long endTime) {
 | 
			
		||||
        TimePageLink eventsPageLink = new TimePageLink(1000, 0, null, null, startTime, endTime);
 | 
			
		||||
        PageData<Event> eventsPageData;
 | 
			
		||||
        do {
 | 
			
		||||
            if (eventType == null) {
 | 
			
		||||
            if (eventFilter == null) {
 | 
			
		||||
                eventsPageData = findEvents(tenantId, entityId, eventsPageLink);
 | 
			
		||||
            } else {
 | 
			
		||||
                eventsPageData = findEvents(tenantId, entityId, eventType, eventsPageLink);
 | 
			
		||||
                eventsPageData = findEventsByFilter(tenantId, entityId, eventFilter, eventsPageLink);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            eventDao.removeAllByIds(eventsPageData.getData().stream()
 | 
			
		||||
 | 
			
		||||
@ -47,8 +47,9 @@ export class EventService {
 | 
			
		||||
 | 
			
		||||
  public clearEvents(entityId: EntityId, eventType: EventType | DebugEventType, filters: FilterEventBody, tenantId: string,
 | 
			
		||||
                     pageLink: TimePageLink, config?: RequestConfig) {
 | 
			
		||||
    return this.http.post(`/api/events/${entityId.entityType}/${entityId.id}/${eventType}/clear&tenantId=${tenantId}` +
 | 
			
		||||
      `${pageLink.toQuery()}`, {...filters, eventType},
 | 
			
		||||
    return this.http.post(`/api/events/${entityId.entityType}/${entityId.id}/clear?tenantId=${tenantId}` +
 | 
			
		||||
      (pageLink.startTime ? `&startTime=${pageLink.startTime}` : ``) +
 | 
			
		||||
      (pageLink.endTime ? `&endTime=${pageLink.endTime}` : ``), {...filters, eventType},
 | 
			
		||||
      defaultHttpOptionsFromConfig(config));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -141,7 +141,12 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
 | 
			
		||||
      icon: 'delete',
 | 
			
		||||
      isEnabled: () => true,
 | 
			
		||||
      onAction: ($event, entity, pageLink: TimePageLink) => {
 | 
			
		||||
        this.eventService.clearEvents(entity.entityId, entity.eventType, entity.filterParams, entity.tenantId, pageLink).subscribe();
 | 
			
		||||
        this.eventService.clearEvents(entity.entityId, entity.eventType, entity.filterParams, entity.tenantId, pageLink).subscribe(
 | 
			
		||||
          () => {
 | 
			
		||||
            this.table.paginator.pageIndex = 0;
 | 
			
		||||
            this.table.updateData();
 | 
			
		||||
          }
 | 
			
		||||
        );
 | 
			
		||||
     }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user