SolarEnergy/central_frontend/src/api/ServerApi.ts

47 lines
988 B
TypeScript

import { APIClient } from "./ApiClient";
export interface ServerConfig {
auth_disabled: boolean;
constraints: ServerConstraint;
}
export interface ServerConstraint {
dev_name_len: LenConstraint;
dev_description_len: LenConstraint;
relay_name_len: LenConstraint;
relay_priority: LenConstraint;
relay_consumption: LenConstraint;
relay_minimal_uptime: LenConstraint;
relay_minimal_downtime: LenConstraint;
relay_daily_minimal_runtime: LenConstraint;
}
export interface LenConstraint {
min: number;
max: number;
}
let config: ServerConfig | null = null;
export class ServerApi {
/**
* Get server configuration
*/
static async LoadConfig(): Promise<void> {
config = (
await APIClient.exec({
uri: "/server/config",
method: "GET",
})
).data;
}
/**
* Get cached configuration
*/
static get Config(): ServerConfig {
if (config === null) throw new Error("Missing configuration!");
return config;
}
}