Files
gemory/src/rules/rules.ts
T

31 lines
1.0 KiB
TypeScript

import {ruleBookApi, ruleScriptApi} from "@/mammon";
import {RuleBookResponse, UpdateRuleBookRequest} from "@/generated/mammon";
import {isAxiosError} from "axios";
import {defineStore} from "pinia";
import {ref} from "vue";
export type RuleBook = RuleBookResponse;
export const useRuleBookStore = defineStore('rule-book', () => {
const ruleBook = ref<RuleBook | null>(null);
const refresh = () => ruleBookApi.findRuleBook()
.then(response => ruleBook.value = response.data)
.catch(error => {
if (isAxiosError(error) && error.response?.status === 404) {
ruleBook.value = null;
return;
}
throw error;
});
const update = (request: UpdateRuleBookRequest) => ruleBookApi.updateRuleBook(request)
.then(response => ruleBook.value = response.data);
refresh();
return {ruleBook, update};
})
export const fetchScriptDefinitions = (): Promise<string> =>
ruleScriptApi.getScriptDefinitions({responseType: 'text'}).then(response => response.data);