Edge events implementation unfinished

This commit is contained in:
Artem Babak 2020-10-21 21:11:17 +03:00
parent 1b9552033b
commit fe9d58d3d3
4 changed files with 43 additions and 21 deletions

View File

@ -14,14 +14,16 @@
/// limitations under the License. /// limitations under the License.
/// ///
import {Inject, Injectable} from '@angular/core'; import { Injectable } from '@angular/core';
import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils'; import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { PageLink } from '@shared/models/page/page-link'; import { PageLink, TimePageLink } from '@shared/models/page/page-link';
import { PageData } from '@shared/models/page/page-data'; import { PageData } from '@shared/models/page/page-data';
import { EntitySubtype } from '@app/shared/models/entity-type.models'; import { EntitySubtype } from '@app/shared/models/entity-type.models';
import { Edge, EdgeInfo, EdgeSearchQuery } from "@shared/models/edge.models"; import { Edge, EdgeInfo, EdgeSearchQuery } from "@shared/models/edge.models";
import { EntityId } from "@shared/models/id/entity-id";
import { Event } from "@shared/models/event.models";
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
@ -96,4 +98,8 @@ export class EdgeService {
return this.http.post<Array<Edge>>('/api/edges', query, defaultHttpOptionsFromConfig(config)); return this.http.post<Array<Edge>>('/api/edges', query, defaultHttpOptionsFromConfig(config));
} }
public getEdgeEvents(entityId: EntityId, pageLink: TimePageLink, config?: RequestConfig): Observable<PageData<Event>> {
return this.http.get<PageData<Event>>(`/api/edge/${entityId.id}/events` + `${pageLink.toQuery()}`,
defaultHttpOptionsFromConfig(config));
}
} }

View File

@ -38,4 +38,9 @@ export class EventService {
`${pageLink.toQuery()}&tenantId=${tenantId}`, `${pageLink.toQuery()}&tenantId=${tenantId}`,
defaultHttpOptionsFromConfig(config)); defaultHttpOptionsFromConfig(config));
} }
public getEdgeEvents(entityId: EntityId, pageLink: TimePageLink, config?: RequestConfig): Observable<PageData<Event>> {
return this.http.get<PageData<Event>>(`/api/edge/${entityId.id}/events` + `${pageLink.toQuery()}`,
defaultHttpOptionsFromConfig(config));
}
} }

View File

@ -20,25 +20,25 @@ import {
EntityTableColumn, EntityTableColumn,
EntityTableConfig EntityTableConfig
} from '@home/models/entity/entities-table-config.models'; } from '@home/models/entity/entities-table-config.models';
import { DebugEventType, Event, EventType } from '@shared/models/event.models'; import {DebugEventType, Event, EventType} from '@shared/models/event.models';
import { TimePageLink } from '@shared/models/page/page-link'; import {TimePageLink} from '@shared/models/page/page-link';
import { TranslateService } from '@ngx-translate/core'; import {TranslateService} from '@ngx-translate/core';
import { DatePipe } from '@angular/common'; import {DatePipe} from '@angular/common';
import { MatDialog } from '@angular/material/dialog'; import {MatDialog} from '@angular/material/dialog';
import { EntityId } from '@shared/models/id/entity-id'; import {EntityId} from '@shared/models/id/entity-id';
import { EventService } from '@app/core/http/event.service'; import {EventService} from '@app/core/http/event.service';
import { EventTableHeaderComponent } from '@home/components/event/event-table-header.component'; import {EventTableHeaderComponent} from '@home/components/event/event-table-header.component';
import { EntityTypeResource } from '@shared/models/entity-type.models'; import {EntityTypeResource} from '@shared/models/entity-type.models';
import { Observable } from 'rxjs'; import {Observable} from 'rxjs';
import { PageData } from '@shared/models/page/page-data'; import {PageData} from '@shared/models/page/page-data';
import { Direction } from '@shared/models/page/sort-order'; import {Direction} from '@shared/models/page/sort-order';
import { DialogService } from '@core/services/dialog.service'; import {DialogService} from '@core/services/dialog.service';
import { ContentType } from '@shared/models/constants'; import {ContentType} from '@shared/models/constants';
import { import {
EventContentDialogComponent, EventContentDialogComponent,
EventContentDialogData EventContentDialogData
} from '@home/components/event/event-content-dialog.component'; } from '@home/components/event/event-content-dialog.component';
import { sortObjectKeys } from '@core/utils'; import {sortObjectKeys} from '@core/utils';
export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
@ -104,8 +104,12 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
} }
fetchEvents(pageLink: TimePageLink): Observable<PageData<Event>> { fetchEvents(pageLink: TimePageLink): Observable<PageData<Event>> {
if (this.eventTypeValue === EventType.EDGE_EVENT) {
return this.eventService.getEdgeEvents(this.entityId, pageLink);
} else {
return this.eventService.getEvents(this.entityId, this.eventType, this.tenantId, pageLink); return this.eventService.getEvents(this.entityId, this.eventType, this.tenantId, pageLink);
} }
}
updateColumns(updateTableColumns: boolean = false): void { updateColumns(updateTableColumns: boolean = false): void {
this.columns = []; this.columns = [];
@ -159,6 +163,12 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
() => ({}), () => undefined, true) () => ({}), () => undefined, true)
); );
break; break;
case EventType.EDGE_EVENT:
this.columns.push(
new EntityTableColumn<Event>('type', 'event.type', '100%',
(entity) => entity.type, entity => ({}), false),
);
break;
case DebugEventType.DEBUG_RULE_NODE: case DebugEventType.DEBUG_RULE_NODE:
case DebugEventType.DEBUG_RULE_CHAIN: case DebugEventType.DEBUG_RULE_CHAIN:
this.columns[0].width = '100px'; this.columns[0].width = '100px';

View File

@ -64,8 +64,9 @@ export interface StatsEventBody extends BaseEventBody {
} }
export interface EdgeEventBody extends BaseEventBody { export interface EdgeEventBody extends BaseEventBody {
messagesProcessed: number; type: string;
errorsOccurred: number; action: string;
entityId: string;
} }
export interface DebugRuleNodeEventBody extends BaseEventBody { export interface DebugRuleNodeEventBody extends BaseEventBody {
@ -81,7 +82,7 @@ export interface DebugRuleNodeEventBody extends BaseEventBody {
error: string; error: string;
} }
export type EventBody = ErrorEventBody & LcEventEventBody & StatsEventBody & DebugRuleNodeEventBody; export type EventBody = ErrorEventBody & LcEventEventBody & StatsEventBody & DebugRuleNodeEventBody & EdgeEventBody;
export interface Event extends BaseData<EventId> { export interface Event extends BaseData<EventId> {
tenantId: TenantId; tenantId: TenantId;