92 lines
2.2 KiB
Vue
92 lines
2.2 KiB
Vue
<script>
|
|
import {authenticatedRequest} from "@/components/session/authenticatedRequest.vue";
|
|
|
|
const normalizeEntries = (entries) => {
|
|
if (Array.isArray(entries)) {
|
|
return entries;
|
|
}
|
|
|
|
if (entries && typeof entries === "object") {
|
|
return Object.values(entries);
|
|
}
|
|
|
|
return [];
|
|
};
|
|
|
|
const toConfigPayload = (entries) => {
|
|
const payload = {};
|
|
normalizeEntries(entries).forEach((entry) => {
|
|
if (!entry || !entry.variable) {
|
|
return;
|
|
}
|
|
payload[entry.variable] = entry.value;
|
|
});
|
|
return payload;
|
|
};
|
|
|
|
/**
|
|
* The Self Serve -> Config object
|
|
*/
|
|
export const Config = {
|
|
get: async ( variable ) => {
|
|
return authenticatedRequest(
|
|
"/selfserve/config?variable=" + variable,
|
|
"GET")
|
|
},
|
|
get_all: async () => {
|
|
return authenticatedRequest(
|
|
"/selfserve/config",
|
|
"GET").then((response) => {
|
|
const normalizedEntries = normalizeEntries(response?.data?.data);
|
|
response.data.data = normalizedEntries;
|
|
response.data.config = toConfigPayload(normalizedEntries);
|
|
return response;
|
|
});
|
|
},
|
|
get_config: async () => {
|
|
return Config.get_all().then((response) => response?.data?.config || {});
|
|
},
|
|
set_config: async (payload) => {
|
|
return authenticatedRequest(
|
|
"/selfserve/config",
|
|
"POST",
|
|
payload
|
|
);
|
|
},
|
|
set: async ( variable, value ) => {
|
|
const currentConfig = await Config.get_config();
|
|
return Config.set_config({
|
|
...currentConfig,
|
|
[variable]: value
|
|
});
|
|
},
|
|
keys: {
|
|
dynamic_image_size: {
|
|
get: async () => {
|
|
return Config.get("dynamic_image_size");
|
|
},
|
|
set: async (value) => {
|
|
return Config.set("dynamic_image_size", value);
|
|
},
|
|
},
|
|
minute_product: {
|
|
get: async () => {
|
|
return Config.get("minute_product");
|
|
},
|
|
set: async (value) => {
|
|
return Config.set("minute_product", value);
|
|
},
|
|
},
|
|
},
|
|
enabled: {
|
|
get: async () => {
|
|
return Config.get("enabled");
|
|
},
|
|
set: async (enabled) => {
|
|
return Config.set("enabled", enabled);
|
|
},
|
|
},
|
|
};
|
|
|
|
</script>
|