Commit bf41bc5f092c6c246aea505396dd0c24261b2999

Authored by deaflynx
1 parent 3c03618d

Edge Downlinks refactor, prepareEdgeEventContent moved to Entity Service

... ... @@ -76,8 +76,10 @@ import {
76 76 } from '@shared/models/query/query.models';
77 77 import { alarmFields } from '@shared/models/alarm.models';
78 78 import { EdgeService } from "@core/http/edge.service";
79   -import { Edge } from '@shared/models/edge.models';
  79 +import { Edge, EdgeEventType } from '@shared/models/edge.models';
80 80 import { RuleChainType } from "@shared/models/rule-chain.models";
  81 +import { WidgetService } from "@core/http/widget.service";
  82 +import { DeviceProfileService } from "@core/http/device-profile.service";
81 83
82 84 @Injectable({
83 85 providedIn: 'root'
... ... @@ -98,6 +100,8 @@ export class EntityService {
98 100 private dashboardService: DashboardService,
99 101 private entityRelationService: EntityRelationService,
100 102 private attributeService: AttributeService,
  103 + private widgetService: WidgetService,
  104 + private deviceProfileService: DeviceProfileService,
101 105 private utils: UtilsService
102 106 ) { }
103 107
... ... @@ -1316,4 +1320,38 @@ export class EntityService {
1316 1320 }
1317 1321 return entitiesObservable;
1318 1322 }
  1323 +
  1324 + public getEdgeEventContentByEntityType(entity: any) {
  1325 + let entityObservable: Observable<any>;
  1326 + switch (entity.type) {
  1327 + case EdgeEventType.DASHBOARD:
  1328 + case EdgeEventType.ALARM:
  1329 + case EdgeEventType.RULE_CHAIN:
  1330 + case EdgeEventType.EDGE:
  1331 + case EdgeEventType.USER:
  1332 + case EdgeEventType.CUSTOMER:
  1333 + case EdgeEventType.TENANT:
  1334 + case EdgeEventType.ASSET:
  1335 + case EdgeEventType.DEVICE:
  1336 + case EdgeEventType.ENTITY_VIEW:
  1337 + entityObservable = this.getEntity(entity.type, entity.entityId, { ignoreLoading: true, ignoreErrors: true });
  1338 + break;
  1339 + case EdgeEventType.RULE_CHAIN_METADATA:
  1340 + entityObservable = this.ruleChainService.getRuleChainMetadata(entity.entityId);
  1341 + break;
  1342 + case EdgeEventType.WIDGET_TYPE:
  1343 + entityObservable = this.widgetService.getWidgetTypeById(entity.entityId);
  1344 + break;
  1345 + case EdgeEventType.WIDGETS_BUNDLE:
  1346 + entityObservable = this.widgetService.getWidgetsBundle(entity.entityId);
  1347 + break;
  1348 + case EdgeEventType.DEVICE_PROFILE:
  1349 + entityObservable = this.deviceProfileService.getDeviceProfile(entity.entityId);
  1350 + break;
  1351 + case EdgeEventType.RELATION:
  1352 + entityObservable = of(entity.body);
  1353 + break;
  1354 + }
  1355 + return entityObservable;
  1356 + }
1319 1357 }
... ...
... ... @@ -34,7 +34,7 @@ import { DatePipe } from '@angular/common';
34 34 import { MatDialog } from '@angular/material/dialog';
35 35 import { EntityId } from '@shared/models/id/entity-id';
36 36 import { EntityTypeResource } from '@shared/models/entity-type.models';
37   -import { Observable, of } from 'rxjs';
  37 +import { Observable } from 'rxjs';
38 38 import { PageData } from '@shared/models/page/page-data';
39 39 import { Direction } from '@shared/models/page/sort-order';
40 40 import { DialogService } from '@core/services/dialog.service';
... ... @@ -43,15 +43,12 @@ import {
43 43 EventContentDialogComponent,
44 44 EventContentDialogData
45 45 } from '@home/components/event/event-content-dialog.component';
46   -import { RuleChainService } from '@core/http/rule-chain.service';
47 46 import { AttributeService } from '@core/http/attribute.service';
48 47 import { AttributeScope } from '@shared/models/telemetry/telemetry.models';
49 48 import { EdgeDownlinkTableHeaderComponent } from '@home/components/edge/edge-downlink-table-header.component';
50 49 import { EdgeService } from '@core/http/edge.service';
51 50 import { map } from 'rxjs/operators';
52 51 import { EntityService } from "@core/http/entity.service";
53   -import { WidgetService } from "@core/http/widget.service";
54   -import { DeviceProfileService } from "@core/http/device-profile.service";
55 52
56 53 export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePageLink> {
57 54
... ... @@ -62,16 +59,13 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
62 59 private dialogService: DialogService,
63 60 private translate: TranslateService,
64 61 private attributeService: AttributeService,
65   - private deviceProfileService: DeviceProfileService,
66   - private ruleChainService: RuleChainService,
67   - private widgetService: WidgetService,
68 62 private datePipe: DatePipe,
69 63 private dialog: MatDialog,
70 64 public entityId: EntityId) {
71 65 super();
72 66
73   - this.loadDataOnInit = false;
74 67 this.tableTitle = '';
  68 + this.loadDataOnInit = false;
75 69 this.useTimePageLink = true;
76 70 this.detailsPanelEnabled = false;
77 71 this.selectionEnabled = false;
... ... @@ -95,7 +89,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
95 89 return this.edgeService.getEdgeEvents(this.entityId, pageLink);
96 90 }
97 91
98   - loadEdgeInfo() {
  92 + loadEdgeInfo(): void {
99 93 this.attributeService.getEntityAttributes(this.entityId, AttributeScope.SERVER_SCOPE, ['queueStartTs'])
100 94 .subscribe(
101 95 attributes => this.onUpdate(attributes)
... ... @@ -147,7 +141,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
147 141 }
148 142 }
149 143
150   - updateEdgeEventStatus(createdTime) {
  144 + updateEdgeEventStatus(createdTime): string {
151 145 if (this.queueStartTs && createdTime < this.queueStartTs) {
152 146 return this.translate.instant('edge.deployed');
153 147 } else {
... ... @@ -155,11 +149,11 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
155 149 }
156 150 }
157 151
158   - isPending(createdTime) {
  152 + isPending(createdTime): boolean {
159 153 return createdTime > this.queueStartTs;
160 154 }
161 155
162   - isEdgeEventHasData(edgeEventType: EdgeEventType) {
  156 + isEdgeEventHasData(edgeEventType: EdgeEventType): boolean {
163 157 switch (edgeEventType) {
164 158 case EdgeEventType.ADMIN_SETTINGS:
165 159 return false;
... ... @@ -168,42 +162,10 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
168 162 }
169 163 }
170 164
171   - prepareEdgeEventContent(entity) {
172   - switch (entity.type) {
173   - case EdgeEventType.DEVICE:
174   - case EdgeEventType.ASSET:
175   - case EdgeEventType.EDGE:
176   - case EdgeEventType.ENTITY_VIEW:
177   - case EdgeEventType.TENANT:
178   - case EdgeEventType.CUSTOMER:
179   - case EdgeEventType.DASHBOARD:
180   - case EdgeEventType.USER:
181   - case EdgeEventType.RULE_CHAIN:
182   - case EdgeEventType.ALARM:
183   - return this.entityService.getEntity(entity.type, entity.entityId, { ignoreLoading: true, ignoreErrors: true }).pipe(
184   - map((entity) => JSON.stringify(entity))
185   - );
186   - case EdgeEventType.RELATION:
187   - return of(JSON.stringify(entity.body));
188   - case EdgeEventType.RULE_CHAIN_METADATA:
189   - return this.ruleChainService.getRuleChainMetadata(entity.entityId).pipe(
190   - map((ruleChainMetaData) => JSON.stringify(ruleChainMetaData.nodes))
191   - );
192   - case EdgeEventType.WIDGET_TYPE:
193   - return this.widgetService.getWidgetTypeById(entity.entityId).pipe(
194   - map((widgetType) => JSON.stringify(widgetType))
195   - );
196   - case EdgeEventType.WIDGETS_BUNDLE:
197   - return this.widgetService.getWidgetsBundle(entity.entityId).pipe(
198   - map((widgetBundles) => JSON.stringify(widgetBundles))
199   - );
200   - case EdgeEventType.DEVICE_PROFILE:
201   - return this.deviceProfileService.getDeviceProfile(entity.entityId).pipe(
202   - map((deviceProfile) => JSON.stringify(deviceProfile))
203   - );
204   - case EdgeEventType.ADMIN_SETTINGS:
205   - return of(null);
206   - }
  165 + prepareEdgeEventContent(entity: any): Observable<string> {
  166 + return this.entityService.getEdgeEventContentByEntityType(entity).pipe(
  167 + map((result) => JSON.stringify(result))
  168 + );
207 169 }
208 170
209 171 showEdgeEventContent($event: MouseEvent, content: string, title: string): void {
... ...
... ... @@ -22,12 +22,9 @@ import { EntityId } from '@shared/models/id/entity-id';
22 22 import { EntitiesTableComponent } from '@home/components/entity/entities-table.component';
23 23 import { EdgeDownlinkTableConfig } from './edge-downlink-table-config';
24 24 import { DialogService } from '@core/services/dialog.service';
25   -import { RuleChainService } from '@core/http/rule-chain.service';
26 25 import { AttributeService } from '@core/http/attribute.service';
27 26 import { EdgeService } from '@core/http/edge.service';
28 27 import { EntityService } from "@core/http/entity.service";
29   -import { WidgetService } from "@core/http/widget.service";
30   -import { DeviceProfileService } from "@core/http/device-profile.service";
31 28
32 29 @Component({
33 30 selector: 'tb-edge-downlink-table',
... ... @@ -72,9 +69,6 @@ export class EdgeDownlinkTableComponent implements OnInit {
72 69 private dialogService: DialogService,
73 70 private translate: TranslateService,
74 71 private attributeService: AttributeService,
75   - private deviceProfileService: DeviceProfileService,
76   - private ruleChainService: RuleChainService,
77   - private widgetService: WidgetService,
78 72 private datePipe: DatePipe,
79 73 private dialog: MatDialog) {
80 74 }
... ... @@ -87,9 +81,6 @@ export class EdgeDownlinkTableComponent implements OnInit {
87 81 this.dialogService,
88 82 this.translate,
89 83 this.attributeService,
90   - this.deviceProfileService,
91   - this.ruleChainService,
92   - this.widgetService,
93 84 this.datePipe,
94 85 this.dialog,
95 86 this.entityIdValue
... ...
... ... @@ -43,7 +43,7 @@
43 43 </mat-tab>
44 44 <mat-tab *ngIf="entity && authUser.authority === authorities.TENANT_ADMIN"
45 45 label="{{ 'edge.downlinks' | translate }}" #downLinksTab="matTab">
46   - <tb-edge-downlink-table [active]="downLinksTab.isActive" [tenantId]="entity.tenantId.id"
  46 + <tb-edge-downlink-table [active]="downLinksTab.isActive"
47 47 [entityId]="entity.id"></tb-edge-downlink-table>
48 48 </mat-tab>
49 49 <mat-tab *ngIf="entity"
... ...