import Permission from "./Permission"; import AuthRequestProxy = require("../../portalAuthorization/AuthRequestProxy"); import { IAuthProvider } from "../../typings/IAuthProvider"; import { IClusterClientProvider } from "../../typings/IClusterClientProvider"; import { IClusterClientResponse } from "../../typings/IClusterClient"; import topologyConstants from '../../topologyConstants'; export interface PermissionServiceDeps { clusterClientProvider: IClusterClientProvider; authProvider: IAuthProvider; } export class PermissionService { private _http: AuthRequestProxy; constructor({ clusterClientProvider, authProvider }: PermissionServiceDeps) { const clusterClient = clusterClientProvider.createClusterClient( topologyConstants.permissions ); this._http = new AuthRequestProxy({ clusterClient, authProvider }); } async getPermissions(id: string): Promise { const response = await this._http.send({ url: `/permissions/${id}`, method: "GET" }); return Permission.fromString(response.data); } async setPermission(id: string, permission: Permission) { const data = Permission.toString(permission); return this._http.send({ url: `/permissions/${id}`, method: "POST", data }); } }