This is an automated email from the ASF dual-hosted git repository.

dominikriemer pushed a commit to branch switch-asset-access
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 48b319d56d57a4e048aad7348223e5b1900862f3
Author: Dominik Riemer <[email protected]>
AuthorDate: Sun Nov 1 22:52:44 2026 +0100

    refactor: Let labels and sites use asset resource
---
 .../src/lib/apis/labels.service.ts                 | 17 ++++-----
 .../assets/dialog/base-asset-links.directive.ts    |  2 --
 .../site-area-configuration.component.ts           | 40 +++++++++-------------
 3 files changed, 25 insertions(+), 34 deletions(-)

diff --git 
a/ui/projects/streampipes/platform-services/src/lib/apis/labels.service.ts 
b/ui/projects/streampipes/platform-services/src/lib/apis/labels.service.ts
index 7e8e35f387..32b9f891ea 100644
--- a/ui/projects/streampipes/platform-services/src/lib/apis/labels.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/labels.service.ts
@@ -20,6 +20,8 @@ import { inject, Injectable } from '@angular/core';
 import { SpLabel } from '../model/labels/labels.model';
 import { Observable } from 'rxjs';
 import { GenericStorageService } from './generic-storage.service';
+import { AssetManagementService } from './asset-management.service';
+import { SpAsset } from '../model/gen/streampipes-model';
 import { map } from 'rxjs/operators';
 
 @Injectable({
@@ -29,25 +31,24 @@ export class LabelsService {
     appDocType = 'sp-labels';
 
     private genericStorageService = inject(GenericStorageService);
+    private assetManagementService = inject(AssetManagementService);
 
     getAllLabels(): Observable<SpLabel[]> {
         return this.genericStorageService.getAllDocuments(this.appDocType);
     }
 
     getLabelsInUse(): Observable<string[]> {
-        return this.genericStorageService
-            .getAllDocuments('asset-management')
-            .pipe(map(docs => this.extractLabelIds(docs)));
+        return this.assetManagementService
+            .getAllAssets()
+            .pipe(map(assets => this.extractLabelIds(assets)));
     }
 
-    extractLabelIds(assets: any): string[] {
+    extractLabelIds(assets: SpAsset[]): string[] {
         const allLabelIds = new Set<string>();
 
-        const extractLabelsFromAsset = (asset: any) => {
+        const extractLabelsFromAsset = (asset: SpAsset) => {
             if (asset.labelIds) {
-                asset.labelIds.forEach((labelId: any) =>
-                    allLabelIds.add(labelId),
-                );
+                asset.labelIds.forEach(labelId => allLabelIds.add(labelId));
             }
             if (asset.assets) {
                 asset.assets.forEach((subasset: any) =>
diff --git a/ui/src/app/assets/dialog/base-asset-links.directive.ts 
b/ui/src/app/assets/dialog/base-asset-links.directive.ts
index ebaab2e9f8..19b6370b26 100644
--- a/ui/src/app/assets/dialog/base-asset-links.directive.ts
+++ b/ui/src/app/assets/dialog/base-asset-links.directive.ts
@@ -24,7 +24,6 @@ import {
     DatalakeRestService,
     FileMetadata,
     FilesService,
-    GenericStorageService,
     PipelineElementService,
     PipelineService,
     SpDataStream,
@@ -39,7 +38,6 @@ import {
 
 @Directive()
 export abstract class BaseAssetLinksDirective {
-    protected genericStorageService = inject(GenericStorageService);
     protected pipelineService = inject(PipelineService);
     protected chartService = inject(ChartService);
     protected dashboardService = inject(DashboardService);
diff --git 
a/ui/src/app/configuration/sites-configuration/site-area-configuration/site-area-configuration.component.ts
 
b/ui/src/app/configuration/sites-configuration/site-area-configuration/site-area-configuration.component.ts
index beee2b62c5..ae83c52bdd 100644
--- 
a/ui/src/app/configuration/sites-configuration/site-area-configuration/site-area-configuration.component.ts
+++ 
b/ui/src/app/configuration/sites-configuration/site-area-configuration/site-area-configuration.component.ts
@@ -26,9 +26,11 @@ import {
 } from '@angular/core';
 import {
     AssetConstants,
+    AssetManagementService,
     AssetSiteDesc,
     GenericStorageService,
     LocationConfig,
+    SpAsset,
 } from '@streampipes/platform-services';
 import {
     MatCell,
@@ -57,13 +59,6 @@ import {
 import { MatTooltip } from '@angular/material/tooltip';
 import { MatDialog } from '@angular/material/dialog';
 
-interface AssetWithSite {
-    assetSite?: {
-        siteId?: string;
-    };
-    assets?: AssetWithSite[];
-}
-
 @Component({
     selector: 'sp-site-area-configuration',
     templateUrl: './site-area-configuration.component.html',
@@ -89,6 +84,7 @@ interface AssetWithSite {
 })
 export class SiteAreaConfigurationComponent implements OnInit {
     private genericStorageService = inject(GenericStorageService);
+    private assetManagementService = inject(AssetManagementService);
     private dialogService = inject(DialogService);
     private translateService = inject(TranslateService);
     private dialog = inject(MatDialog);
@@ -132,17 +128,15 @@ export class SiteAreaConfigurationComponent implements 
OnInit {
     }
 
     listSitesInUse(): void {
-        this.genericStorageService
-            .getAllDocuments(AssetConstants.ASSET_APP_DOC_NAME)
-            .subscribe(res => {
-                this.allUsedSiteIds = this.extractSiteIds(res);
-            });
+        this.assetManagementService.getAllAssets().subscribe(assets => {
+            this.allUsedSiteIds = this.extractSiteIds(assets);
+        });
     }
 
-    extractSiteIds(assets: AssetWithSite[]): string[] {
+    extractSiteIds(assets: SpAsset[]): string[] {
         const allSiteIds = new Set<string>();
 
-        const extractSiteFromAsset = (asset: AssetWithSite) => {
+        const extractSiteFromAsset = (asset: SpAsset) => {
             if (asset.assetSite?.siteId) {
                 allSiteIds.add(asset.assetSite.siteId);
             }
@@ -155,17 +149,15 @@ export class SiteAreaConfigurationComponent implements 
OnInit {
     }
 
     deleteSite(site: AssetSiteDesc): void {
-        this.genericStorageService
-            .getAllDocuments(AssetConstants.ASSET_APP_DOC_NAME)
-            .subscribe(res => {
-                this.allUsedSiteIds = this.extractSiteIds(res);
+        this.assetManagementService.getAllAssets().subscribe(assets => {
+            this.allUsedSiteIds = this.extractSiteIds(assets);
 
-                if (this.allUsedSiteIds.includes(site._id)) {
-                    this.showSiteInUseWarning();
-                } else {
-                    this.showDeleteSiteDialog(site);
-                }
-            });
+            if (this.allUsedSiteIds.includes(site._id)) {
+                this.showSiteInUseWarning();
+            } else {
+                this.showDeleteSiteDialog(site);
+            }
+        });
     }
 
     showSiteInUseWarning(): void {

Reply via email to