diff --git a/src/angular/frontend/src/app/clients/gandalf/mithrandir/palantir.service.ts b/src/angular/frontend/src/app/clients/gandalf/mithrandir/palantir.service.ts new file mode 100644 index 0000000..ad7abad --- /dev/null +++ b/src/angular/frontend/src/app/clients/gandalf/mithrandir/palantir.service.ts @@ -0,0 +1,14 @@ +import {Injectable} from "@angular/core"; +import {GandalfClient} from "../gandalf-client"; + +@Injectable({ + providedIn: 'root' +}) +export abstract class PalantirService extends GandalfClient { + + protected base = '/api/appproxy/q5lBLamL6rKy'; + +} + + + diff --git a/src/angular/frontend/src/app/clients/gandalf/mithrandir/proxy.service.ts b/src/angular/frontend/src/app/clients/gandalf/mithrandir/subject.service.ts similarity index 67% rename from src/angular/frontend/src/app/clients/gandalf/mithrandir/proxy.service.ts rename to src/angular/frontend/src/app/clients/gandalf/mithrandir/subject.service.ts index 04c1c5c..2646ba2 100644 --- a/src/angular/frontend/src/app/clients/gandalf/mithrandir/proxy.service.ts +++ b/src/angular/frontend/src/app/clients/gandalf/mithrandir/subject.service.ts @@ -1,16 +1,16 @@ import {Injectable} from "@angular/core"; -import {GandalfClient} from "../gandalf-client"; import {lastValueFrom, Observable} from "rxjs"; +import {PalantirService} from "./palantir.service"; @Injectable({ providedIn: 'root' }) -export class ProxyService extends GandalfClient { +export class SubjectService extends PalantirService { - private base = '/api/appproxy/q5lBLamL6rKy'; + protected baseUrl = this.base + '/api/subject'; me$(onError?: (error: any) => void): Observable<{ "name": string }> { - return this.handleRequest(this.http.get<{ "name": string }>(this.base + '/api/subject/me'), onError); + return this.handleRequest(this.http.get<{ "name": string }>(this.baseUrl + '/me'), onError); } meAsync(onError?: (error: any) => void): Promise<{ "name": string }> { diff --git a/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/dtos/tenant-grid-view-dto.ts b/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/dtos/tenant-grid-view-dto.ts new file mode 100644 index 0000000..d420f1e --- /dev/null +++ b/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/dtos/tenant-grid-view-dto.ts @@ -0,0 +1,7 @@ +export interface TenantGridViewDto { + id: string; + isMaster: boolean; + name: string; + ownerId: string; + visibility: string; +} diff --git a/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/tenant.service.ts b/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/tenant.service.ts new file mode 100644 index 0000000..90db4ad --- /dev/null +++ b/src/angular/frontend/src/app/clients/gandalf/mithrandir/tenant/tenant.service.ts @@ -0,0 +1,33 @@ +import {Injectable} from "@angular/core"; +import {lastValueFrom, Observable, of} from "rxjs"; +import {PalantirService} from '../palantir.service'; +import {TenantGridViewDto} from './dtos/tenant-grid-view-dto'; + +@Injectable({ + providedIn: 'root' +}) +export class TenantService extends PalantirService { + + protected baseUrl = this.base + '/api/tenant'; + + tenants$(onError?: (error: any) => void): Observable { + return this.handleRequest(this.http.get(this.baseUrl), onError); + } + + tenantsAsync(onError?: (error: any) => void): Promise { + return lastValueFrom(this.tenants$(onError)); + } + + getTenant$(id: string | null, onError?: (error: any) => void): Observable { + + if (id === null) { + return of(null); + } + + return this.handleRequest(this.http.get(this.baseUrl + `/${id}`), onError); + } + + getTenantAsync(id: string | null, onError?: (error: any) => void): Promise { + return lastValueFrom(this.getTenant$(id, onError)); + } +}