UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

47 lines 8.23 kB
import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable, combineLatest, map, of, switchMap, catchError, } from 'rxjs'; import { K8sApiService } from '../../api/k8s-api.service'; import { API_GATEWAY } from '../../core/constants/public-api'; import { publishRef, skipError } from '../../core/public-api'; import { RESOURCE_TYPES, } from '../../core/types/public-api'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "../../api/k8s-api.service"; export class ProjectService { constructor(http, k8sApi) { this.http = http; this.k8sApi = k8sApi; } getProjects(cluster, fallback = true) { const cluster$ = cluster instanceof Observable ? cluster : of(cluster); return combineLatest([ this.http .get(`${API_GATEWAY}/auth/v1/projects`) .pipe(catchError(err => // https://jira.alauda.cn/browse/ACP-12486 err.code === 403 && fallback ? cluster$.pipe(switchMap(cluster => this.k8sApi.getResourceList({ type: RESOURCE_TYPES.PROJECT_QUOTA, cluster, queryParams: { limit: '0' }, })), skipError({ items: [] })) : of({ items: [] })), map(res => res.items)), cluster$, ]).pipe(map(([projects, cluster]) => cluster && projects.length && projects[0].kind === 'Project' ? projects.filter(project => project.spec.clusters?.some(({ name }) => name === cluster)) : projects), publishRef()); } getNamespacesByProjectAndCluster(project, cluster, params) { return this.http.get(`${API_GATEWAY}/auth/v1/projects/${project}/clusters/${cluster}/namespaces`, { params, }); } static { this.ɵfac = function ProjectService_Factory(t) { return new (t || ProjectService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.K8sApiService)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectService, factory: ProjectService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i1.HttpClient }, { type: i2.K8sApiService }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9wcm9qZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsR0FBRyxFQUNILEVBQUUsRUFDRixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQVcsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFJTCxjQUFjLEdBQ2YsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUdyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNtQixJQUFnQixFQUNoQixNQUFtQztRQURuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQTZCO0lBQ25ELENBQUM7SUFFSixXQUFXLENBQUMsT0FBcUMsRUFBRSxRQUFRLEdBQUcsSUFBSTtRQUNoRSxNQUFNLFFBQVEsR0FBRyxPQUFPLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSTtpQkFDTixHQUFHLENBQWtDLEdBQUcsV0FBVyxtQkFBbUIsQ0FBQztpQkFDdkUsSUFBSSxDQUNILFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLDBDQUEwQztZQUMxQyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxRQUFRO2dCQUMxQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDWCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQVU7b0JBQ25DLElBQUksRUFBRSxjQUFjLENBQUMsYUFBYTtvQkFDbEMsT0FBTztvQkFDUCxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2lCQUM1QixDQUFDLENBQ0gsRUFDRCxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBZSxFQUFFLENBQUMsQ0FDdEM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFlLEVBQUUsQ0FBQyxDQUNuQyxFQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FDdEI7WUFDSCxRQUFRO1NBQ1QsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQzFCLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUztZQUMxRCxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQzVEO1lBQ0gsQ0FBQyxDQUFDLFFBQVEsQ0FDYixFQUNELFVBQVUsRUFBRSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsZ0NBQWdDLENBQzlCLE9BQWUsRUFDZixPQUFlLEVBQ2YsTUFFQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsV0FBVyxxQkFBcUIsT0FBTyxhQUFhLE9BQU8sYUFBYSxFQUMzRTtZQUNFLE1BQU07U0FDUCxDQUNGLENBQUM7SUFDSixDQUFDOytFQXZEVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICBjYXRjaEVycm9yLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9rOHMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBJX0dBVEVXQVkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFByb2plY3QsIHB1Ymxpc2hSZWYsIHNraXBFcnJvciB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBOYW1lc3BhY2UsXG4gIFJlc291cmNlVHlwZSxcbiAgUkVTT1VSQ0VfVFlQRVMsXG59IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcHVibGljLWFwaSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNBcGk6IEs4c0FwaVNlcnZpY2U8UmVzb3VyY2VUeXBlPixcbiAgKSB7fVxuXG4gIGdldFByb2plY3RzKGNsdXN0ZXI/OiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4sIGZhbGxiYWNrID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNsdXN0ZXIkID0gY2x1c3RlciBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBjbHVzdGVyIDogb2YoY2x1c3Rlcik7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxQcm9qZWN0Pj4oYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvcHJvamVjdHNgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9qaXJhLmFsYXVkYS5jbi9icm93c2UvQUNQLTEyNDg2XG4gICAgICAgICAgICBlcnIuY29kZSA9PT0gNDAzICYmIGZhbGxiYWNrXG4gICAgICAgICAgICAgID8gY2x1c3RlciQucGlwZShcbiAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChjbHVzdGVyID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuazhzQXBpLmdldFJlc291cmNlTGlzdDxQcm9qZWN0Pih7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuUFJPSkVDVF9RVU9UQSxcbiAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGxpbWl0OiAnMCcgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgc2tpcEVycm9yKHsgaXRlbXM6IFtdIGFzIFByb2plY3RbXSB9KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogb2YoeyBpdGVtczogW10gYXMgUHJvamVjdFtdIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICApLFxuICAgICAgY2x1c3RlciQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb2plY3RzLCBjbHVzdGVyXSkgPT5cbiAgICAgICAgY2x1c3RlciAmJiBwcm9qZWN0cy5sZW5ndGggJiYgcHJvamVjdHNbMF0ua2luZCA9PT0gJ1Byb2plY3QnXG4gICAgICAgICAgPyBwcm9qZWN0cy5maWx0ZXIocHJvamVjdCA9PlxuICAgICAgICAgICAgICBwcm9qZWN0LnNwZWMuY2x1c3RlcnM/LnNvbWUoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBjbHVzdGVyKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHByb2plY3RzLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0TmFtZXNwYWNlc0J5UHJvamVjdEFuZENsdXN0ZXIoXG4gICAgcHJvamVjdDogc3RyaW5nLFxuICAgIGNsdXN0ZXI6IHN0cmluZyxcbiAgICBwYXJhbXM/OiB7XG4gICAgICBjb250aW51ZT86IHN0cmluZztcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PE5hbWVzcGFjZT4+KFxuICAgICAgYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvcHJvamVjdHMvJHtwcm9qZWN0fS9jbHVzdGVycy8ke2NsdXN0ZXJ9L25hbWVzcGFjZXNgLFxuICAgICAge1xuICAgICAgICBwYXJhbXMsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==