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 {
