2022-12-01 23:07:49 +01:00
|
|
|
import Config, { AdminConfig } from "../types/config.type";
|
2022-11-28 17:50:36 +01:00
|
|
|
import api from "./api.service";
|
|
|
|
|
2022-12-01 23:07:49 +01:00
|
|
|
const list = async (): Promise<Config[]> => {
|
2022-11-28 17:50:36 +01:00
|
|
|
return (await api.get("/configs")).data;
|
|
|
|
};
|
|
|
|
|
2022-12-01 23:07:49 +01:00
|
|
|
const listForAdmin = async (): Promise<AdminConfig[]> => {
|
|
|
|
return (await api.get("/configs/admin")).data;
|
|
|
|
};
|
|
|
|
|
|
|
|
const update = async (
|
|
|
|
key: string,
|
|
|
|
value: string | number | boolean
|
|
|
|
): Promise<AdminConfig[]> => {
|
|
|
|
return (await api.patch(`/configs/admin/${key}`, { value })).data;
|
|
|
|
};
|
|
|
|
|
2022-11-28 17:50:36 +01:00
|
|
|
const get = (key: string, configVariables: Config[]): any => {
|
2022-12-01 23:07:49 +01:00
|
|
|
if (!configVariables) return null;
|
|
|
|
|
2022-11-28 17:50:36 +01:00
|
|
|
const configVariable = configVariables.filter(
|
|
|
|
(variable) => variable.key == key
|
|
|
|
)[0];
|
|
|
|
|
|
|
|
if (!configVariable) throw new Error(`Config variable ${key} not found`);
|
|
|
|
|
|
|
|
if (configVariable.type == "number") return parseInt(configVariable.value);
|
|
|
|
if (configVariable.type == "boolean") return configVariable.value == "true";
|
|
|
|
if (configVariable.type == "string") return configVariable.value;
|
|
|
|
};
|
|
|
|
|
2022-12-01 23:07:49 +01:00
|
|
|
const finishSetup = async (): Promise<AdminConfig[]> => {
|
|
|
|
return (await api.post("/configs/admin/finishSetup")).data;
|
|
|
|
};
|
|
|
|
|
2022-11-28 17:50:36 +01:00
|
|
|
export default {
|
2022-12-01 23:07:49 +01:00
|
|
|
list,
|
|
|
|
listForAdmin,
|
|
|
|
update,
|
2022-11-28 17:50:36 +01:00
|
|
|
get,
|
2022-12-01 23:07:49 +01:00
|
|
|
finishSetup,
|
2022-11-28 17:50:36 +01:00
|
|
|
};
|