mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
62a04e9510
This new API is somewhat patterned after the InstallAPI, but simpler whenever possible.
32 lines
911 B
TypeScript
32 lines
911 B
TypeScript
import {BaseAPI, IOptions} from "app/common/BaseAPI";
|
|
import {addCurrentOrgToPath} from 'app/common/urlUtils';
|
|
|
|
/**
|
|
* An API for accessing the internal Grist configuration, stored in
|
|
* config.json.
|
|
*/
|
|
export class ConfigAPI extends BaseAPI {
|
|
constructor(private _homeUrl: string, options: IOptions = {}) {
|
|
super(options);
|
|
}
|
|
|
|
public async getValue(key: string): Promise<any> {
|
|
return (await this.requestJson(`${this._url}/api/config/${key}`, {method: 'GET'})).value;
|
|
}
|
|
|
|
public async setValue(value: any, restart=false): Promise<void> {
|
|
await this.request(`${this._url}/api/config`, {
|
|
method: 'PATCH',
|
|
body: JSON.stringify({config: value, restart}),
|
|
});
|
|
}
|
|
|
|
public async restartServer(): Promise<void> {
|
|
await this.request(`${this._url}/api/admin/restart`, {method: 'POST'});
|
|
}
|
|
|
|
private get _url(): string {
|
|
return addCurrentOrgToPath(this._homeUrl);
|
|
}
|
|
}
|