Commit bf41bc5f092c6c246aea505396dd0c24261b2999

Authored by deaflynx
1 parent 3c03618d

Edge Downlinks refactor, prepareEdgeEventContent moved to Entity Service

@@ -76,8 +76,10 @@ import { @@ -76,8 +76,10 @@ import {
76 } from '@shared/models/query/query.models'; 76 } from '@shared/models/query/query.models';
77 import { alarmFields } from '@shared/models/alarm.models'; 77 import { alarmFields } from '@shared/models/alarm.models';
78 import { EdgeService } from "@core/http/edge.service"; 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 import { RuleChainType } from "@shared/models/rule-chain.models"; 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 @Injectable({ 84 @Injectable({
83 providedIn: 'root' 85 providedIn: 'root'
@@ -98,6 +100,8 @@ export class EntityService { @@ -98,6 +100,8 @@ export class EntityService {
98 private dashboardService: DashboardService, 100 private dashboardService: DashboardService,
99 private entityRelationService: EntityRelationService, 101 private entityRelationService: EntityRelationService,
100 private attributeService: AttributeService, 102 private attributeService: AttributeService,
  103 + private widgetService: WidgetService,
  104 + private deviceProfileService: DeviceProfileService,
101 private utils: UtilsService 105 private utils: UtilsService
102 ) { } 106 ) { }
103 107
@@ -1316,4 +1320,38 @@ export class EntityService { @@ -1316,4 +1320,38 @@ export class EntityService {
1316 } 1320 }
1317 return entitiesObservable; 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,7 +34,7 @@ import { DatePipe } from '@angular/common';
34 import { MatDialog } from '@angular/material/dialog'; 34 import { MatDialog } from '@angular/material/dialog';
35 import { EntityId } from '@shared/models/id/entity-id'; 35 import { EntityId } from '@shared/models/id/entity-id';
36 import { EntityTypeResource } from '@shared/models/entity-type.models'; 36 import { EntityTypeResource } from '@shared/models/entity-type.models';
37 -import { Observable, of } from 'rxjs'; 37 +import { Observable } from 'rxjs';
38 import { PageData } from '@shared/models/page/page-data'; 38 import { PageData } from '@shared/models/page/page-data';
39 import { Direction } from '@shared/models/page/sort-order'; 39 import { Direction } from '@shared/models/page/sort-order';
40 import { DialogService } from '@core/services/dialog.service'; 40 import { DialogService } from '@core/services/dialog.service';
@@ -43,15 +43,12 @@ import { @@ -43,15 +43,12 @@ import {
43 EventContentDialogComponent, 43 EventContentDialogComponent,
44 EventContentDialogData 44 EventContentDialogData
45 } from '@home/components/event/event-content-dialog.component'; 45 } from '@home/components/event/event-content-dialog.component';
46 -import { RuleChainService } from '@core/http/rule-chain.service';  
47 import { AttributeService } from '@core/http/attribute.service'; 46 import { AttributeService } from '@core/http/attribute.service';
48 import { AttributeScope } from '@shared/models/telemetry/telemetry.models'; 47 import { AttributeScope } from '@shared/models/telemetry/telemetry.models';
49 import { EdgeDownlinkTableHeaderComponent } from '@home/components/edge/edge-downlink-table-header.component'; 48 import { EdgeDownlinkTableHeaderComponent } from '@home/components/edge/edge-downlink-table-header.component';
50 import { EdgeService } from '@core/http/edge.service'; 49 import { EdgeService } from '@core/http/edge.service';
51 import { map } from 'rxjs/operators'; 50 import { map } from 'rxjs/operators';
52 import { EntityService } from "@core/http/entity.service"; 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 export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePageLink> { 53 export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePageLink> {
57 54
@@ -62,16 +59,13 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa @@ -62,16 +59,13 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
62 private dialogService: DialogService, 59 private dialogService: DialogService,
63 private translate: TranslateService, 60 private translate: TranslateService,
64 private attributeService: AttributeService, 61 private attributeService: AttributeService,
65 - private deviceProfileService: DeviceProfileService,  
66 - private ruleChainService: RuleChainService,  
67 - private widgetService: WidgetService,  
68 private datePipe: DatePipe, 62 private datePipe: DatePipe,
69 private dialog: MatDialog, 63 private dialog: MatDialog,
70 public entityId: EntityId) { 64 public entityId: EntityId) {
71 super(); 65 super();
72 66
73 - this.loadDataOnInit = false;  
74 this.tableTitle = ''; 67 this.tableTitle = '';
  68 + this.loadDataOnInit = false;
75 this.useTimePageLink = true; 69 this.useTimePageLink = true;
76 this.detailsPanelEnabled = false; 70 this.detailsPanelEnabled = false;
77 this.selectionEnabled = false; 71 this.selectionEnabled = false;
@@ -95,7 +89,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa @@ -95,7 +89,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
95 return this.edgeService.getEdgeEvents(this.entityId, pageLink); 89 return this.edgeService.getEdgeEvents(this.entityId, pageLink);
96 } 90 }
97 91
98 - loadEdgeInfo() { 92 + loadEdgeInfo(): void {
99 this.attributeService.getEntityAttributes(this.entityId, AttributeScope.SERVER_SCOPE, ['queueStartTs']) 93 this.attributeService.getEntityAttributes(this.entityId, AttributeScope.SERVER_SCOPE, ['queueStartTs'])
100 .subscribe( 94 .subscribe(
101 attributes => this.onUpdate(attributes) 95 attributes => this.onUpdate(attributes)
@@ -147,7 +141,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa @@ -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 if (this.queueStartTs && createdTime < this.queueStartTs) { 145 if (this.queueStartTs && createdTime < this.queueStartTs) {
152 return this.translate.instant('edge.deployed'); 146 return this.translate.instant('edge.deployed');
153 } else { 147 } else {
@@ -155,11 +149,11 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa @@ -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 return createdTime > this.queueStartTs; 153 return createdTime > this.queueStartTs;
160 } 154 }
161 155
162 - isEdgeEventHasData(edgeEventType: EdgeEventType) { 156 + isEdgeEventHasData(edgeEventType: EdgeEventType): boolean {
163 switch (edgeEventType) { 157 switch (edgeEventType) {
164 case EdgeEventType.ADMIN_SETTINGS: 158 case EdgeEventType.ADMIN_SETTINGS:
165 return false; 159 return false;
@@ -168,42 +162,10 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa @@ -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 showEdgeEventContent($event: MouseEvent, content: string, title: string): void { 171 showEdgeEventContent($event: MouseEvent, content: string, title: string): void {
@@ -22,12 +22,9 @@ import { EntityId } from '@shared/models/id/entity-id'; @@ -22,12 +22,9 @@ import { EntityId } from '@shared/models/id/entity-id';
22 import { EntitiesTableComponent } from '@home/components/entity/entities-table.component'; 22 import { EntitiesTableComponent } from '@home/components/entity/entities-table.component';
23 import { EdgeDownlinkTableConfig } from './edge-downlink-table-config'; 23 import { EdgeDownlinkTableConfig } from './edge-downlink-table-config';
24 import { DialogService } from '@core/services/dialog.service'; 24 import { DialogService } from '@core/services/dialog.service';
25 -import { RuleChainService } from '@core/http/rule-chain.service';  
26 import { AttributeService } from '@core/http/attribute.service'; 25 import { AttributeService } from '@core/http/attribute.service';
27 import { EdgeService } from '@core/http/edge.service'; 26 import { EdgeService } from '@core/http/edge.service';
28 import { EntityService } from "@core/http/entity.service"; 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 @Component({ 29 @Component({
33 selector: 'tb-edge-downlink-table', 30 selector: 'tb-edge-downlink-table',
@@ -72,9 +69,6 @@ export class EdgeDownlinkTableComponent implements OnInit { @@ -72,9 +69,6 @@ export class EdgeDownlinkTableComponent implements OnInit {
72 private dialogService: DialogService, 69 private dialogService: DialogService,
73 private translate: TranslateService, 70 private translate: TranslateService,
74 private attributeService: AttributeService, 71 private attributeService: AttributeService,
75 - private deviceProfileService: DeviceProfileService,  
76 - private ruleChainService: RuleChainService,  
77 - private widgetService: WidgetService,  
78 private datePipe: DatePipe, 72 private datePipe: DatePipe,
79 private dialog: MatDialog) { 73 private dialog: MatDialog) {
80 } 74 }
@@ -87,9 +81,6 @@ export class EdgeDownlinkTableComponent implements OnInit { @@ -87,9 +81,6 @@ export class EdgeDownlinkTableComponent implements OnInit {
87 this.dialogService, 81 this.dialogService,
88 this.translate, 82 this.translate,
89 this.attributeService, 83 this.attributeService,
90 - this.deviceProfileService,  
91 - this.ruleChainService,  
92 - this.widgetService,  
93 this.datePipe, 84 this.datePipe,
94 this.dialog, 85 this.dialog,
95 this.entityIdValue 86 this.entityIdValue
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 </mat-tab> 43 </mat-tab>
44 <mat-tab *ngIf="entity && authUser.authority === authorities.TENANT_ADMIN" 44 <mat-tab *ngIf="entity && authUser.authority === authorities.TENANT_ADMIN"
45 label="{{ 'edge.downlinks' | translate }}" #downLinksTab="matTab"> 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 [entityId]="entity.id"></tb-edge-downlink-table> 47 [entityId]="entity.id"></tb-edge-downlink-table>
48 </mat-tab> 48 </mat-tab>
49 <mat-tab *ngIf="entity" 49 <mat-tab *ngIf="entity"