UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

60 lines 9.31 kB
import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { flatMap } from 'lodash-es'; import { forkJoin, map, switchMap } from 'rxjs'; import { API_GATEWAY, skipError, } from '../core/public-api'; import { matchLabelsToString } from '../k8s-resource-list/utils'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; const BASE_URL = `${API_GATEWAY}/auth/v1/projects`; export class ProjectApiService { constructor(http) { this.http = http; } getProjects(params) { return this.http .get(BASE_URL, params ? { params } : undefined) .pipe(map(res => res.items), skipError([])); } getProjectList(params) { return this.http.get(BASE_URL, params ? { params, } : undefined); } getNamespaces({ project, cluster }) { return this.http.get(`${BASE_URL}/${project}/clusters/${cluster}/namespaces`); } get(name) { return this.getProjects({ fieldSelector: matchLabelsToString({ 'metadata.name': name, }), }).pipe(map(list => list[0])); } getClusterNamespaces(project, cluster) { return this.http .get(`{{API_GATEWAY}}/auth/v1/projects/${project}/clusters/${cluster}/namespaces`) .pipe(map(res => res.items)); } deleteProject(project) { return this.http.delete(`${API_GATEWAY}/auth/v1/projects/${project}`); } getProjectNamespaces(projectName) { return this.get(projectName).pipe(switchMap(project => { const clusters = project.spec.clusters; return forkJoin(clusters.map(({ name: clusterName }) => this.getClusterNamespaces(projectName, clusterName).pipe(map(list => list.map(item => ({ namespace: item.metadata.name, cluster: clusterName, }))), skipError([])))); }), map(groups => flatMap(groups)), skipError([])); } static { this.ɵfac = function ProjectApiService_Factory(t) { return new (t || ProjectApiService)(i0.ɵɵinject(i1.HttpClient)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectApiService, factory: ProjectApiService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectApiService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i1.HttpClient }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hcGkvcHJvamVjdC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBYyxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQ0wsV0FBVyxFQUtYLFNBQVMsR0FDVixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFakUsTUFBTSxRQUFRLEdBQUcsR0FBRyxXQUFXLG1CQUFtQixDQUFDO0FBR25ELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFakQsV0FBVyxDQUFDLE1BQTJCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBRUYsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQzNDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQ3JCLFNBQVMsQ0FBQyxFQUFlLENBQUMsQ0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBMkI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsUUFBUSxFQUNSLE1BQU07WUFDSixDQUFDLENBQUM7Z0JBQ0UsTUFBTTthQUNQO1lBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQXdDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsUUFBUSxJQUFJLE9BQU8sYUFBYSxPQUFPLGFBQWEsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN0QixhQUFhLEVBQUUsbUJBQW1CLENBQUM7Z0JBQ2pDLGVBQWUsRUFBRSxJQUFJO2FBQ3RCLENBQUM7U0FDSCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWUsRUFBRSxPQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBRUYsb0NBQW9DLE9BQU8sYUFBYSxPQUFPLGFBQWEsQ0FBQzthQUM5RSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3JCLEdBQUcsV0FBVyxxQkFBcUIsT0FBTyxFQUFFLENBQzdDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLFdBQW1CO1FBRW5CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9CLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUV2QyxPQUFPLFFBQVEsQ0FDYixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQzdCLE9BQU8sRUFBRSxXQUFXO2FBQ3JCLENBQUMsQ0FBQyxDQUNKLEVBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUNkLENBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzlCLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDZCxDQUFDO0lBQ0osQ0FBQztrRkE3RVUsaUJBQWlCO3VFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQURKLE1BQU07O2lGQUNuQixpQkFBaUI7Y0FEN0IsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBBUElfR0FURVdBWSxcbiAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCxcbiAgTmFtZXNwYWNlLFxuICBQcm9qZWN0LFxuICBSZXNvdXJjZUxpc3RQYXJhbXMsXG4gIHNraXBFcnJvcixcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IG1hdGNoTGFiZWxzVG9TdHJpbmcgfSBmcm9tICcuLi9rOHMtcmVzb3VyY2UtbGlzdC91dGlscyc7XG5cbmNvbnN0IEJBU0VfVVJMID0gYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvcHJvamVjdHNgO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByb2plY3RBcGlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldFByb2plY3RzKHBhcmFtcz86IFJlc291cmNlTGlzdFBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8XG4gICAgICAgIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8UHJvamVjdD5cbiAgICAgID4oQkFTRV9VUkwsIHBhcmFtcyA/IHsgcGFyYW1zIH0gOiB1bmRlZmluZWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICBza2lwRXJyb3IoW10gYXMgUHJvamVjdFtdKSxcbiAgICAgICk7XG4gIH1cblxuICBnZXRQcm9qZWN0TGlzdChwYXJhbXM/OiBSZXNvdXJjZUxpc3RQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PFByb2plY3Q+PihcbiAgICAgIEJBU0VfVVJMLFxuICAgICAgcGFyYW1zXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgKTtcbiAgfVxuXG4gIGdldE5hbWVzcGFjZXMoeyBwcm9qZWN0LCBjbHVzdGVyIH06IHsgcHJvamVjdDogc3RyaW5nOyBjbHVzdGVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8TmFtZXNwYWNlPj4oXG4gICAgICBgJHtCQVNFX1VSTH0vJHtwcm9qZWN0fS9jbHVzdGVycy8ke2NsdXN0ZXJ9L25hbWVzcGFjZXNgLFxuICAgICk7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9qZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvamVjdHMoe1xuICAgICAgZmllbGRTZWxlY3RvcjogbWF0Y2hMYWJlbHNUb1N0cmluZyh7XG4gICAgICAgICdtZXRhZGF0YS5uYW1lJzogbmFtZSxcbiAgICAgIH0pLFxuICAgIH0pLnBpcGUobWFwKGxpc3QgPT4gbGlzdFswXSkpO1xuICB9XG5cbiAgZ2V0Q2x1c3Rlck5hbWVzcGFjZXMocHJvamVjdDogc3RyaW5nLCBjbHVzdGVyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFxuICAgICAgICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PE5hbWVzcGFjZT5cbiAgICAgID4oYHt7QVBJX0dBVEVXQVl9fS9hdXRoL3YxL3Byb2plY3RzLyR7cHJvamVjdH0vY2x1c3RlcnMvJHtjbHVzdGVyfS9uYW1lc3BhY2VzYClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLml0ZW1zKSk7XG4gIH1cblxuICBkZWxldGVQcm9qZWN0KHByb2plY3Q6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFByb2plY3Q+KFxuICAgICAgYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvcHJvamVjdHMvJHtwcm9qZWN0fWAsXG4gICAgKTtcbiAgfVxuXG4gIGdldFByb2plY3ROYW1lc3BhY2VzKFxuICAgIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8QXJyYXk8eyBjbHVzdGVyOiBzdHJpbmc7IG5hbWVzcGFjZTogc3RyaW5nIH0+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KHByb2plY3ROYW1lKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHByb2plY3QgPT4ge1xuICAgICAgICBjb25zdCBjbHVzdGVycyA9IHByb2plY3Quc3BlYy5jbHVzdGVycztcblxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICAgICAgY2x1c3RlcnMubWFwKCh7IG5hbWU6IGNsdXN0ZXJOYW1lIH0pID0+XG4gICAgICAgICAgICB0aGlzLmdldENsdXN0ZXJOYW1lc3BhY2VzKHByb2plY3ROYW1lLCBjbHVzdGVyTmFtZSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKGxpc3QgPT5cbiAgICAgICAgICAgICAgICBsaXN0Lm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6IGl0ZW0ubWV0YWRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICAgIGNsdXN0ZXI6IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgc2tpcEVycm9yKFtdKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGdyb3VwcyA9PiBmbGF0TWFwKGdyb3VwcykpLFxuICAgICAgc2tpcEVycm9yKFtdKSxcbiAgICApO1xuICB9XG59XG4iXX0=