Load server config on react app

This commit is contained in:
2023-06-06 15:47:30 +02:00
parent ec98e728d8
commit 8f0a3e1f07
10 changed files with 170 additions and 38 deletions

View File

@ -0,0 +1,47 @@
import { APIClient } from "./ApiClient";
interface LenConstraint {
min: number;
max: number;
}
interface Constraints {
mail_len: LenConstraint;
user_name_len: LenConstraint;
password_len: LenConstraint;
}
interface OIDCProvider {
id: string;
name: string;
}
export interface ServerConfig {
constraints: Constraints;
mail: string;
oidc_providers: OIDCProvider[];
}
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 Config(): ServerConfig {
if (config === null) throw new Error("Missing configuration!");
return config;
}
}