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(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 => ruleScriptApi.getScriptDefinitions({responseType: 'text'}).then(response => response.data);