@alauda-fe/common
Version:
Alauda frontend team common codes.
47 lines • 8.23 kB
JavaScript
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==