34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import {CreateCombiningLedgerCommand, CreateMainLedgerCommand, FindAll200ResponseInner} from "@/generated/mammon";
|
|
import {defineStore} from "pinia";
|
|
import {ref} from "vue";
|
|
import {ledgerControllerApi} from "@/mammon";
|
|
|
|
export const MAIN_LEDGER = "MAIN";
|
|
export const COMBINING_LEDGER = "COMBINING";
|
|
|
|
export type LedgerType = typeof MAIN_LEDGER | typeof COMBINING_LEDGER;
|
|
export type Ledger = FindAll200ResponseInner;
|
|
|
|
export const useLedgersStore = defineStore('ledgers', () => {
|
|
const ledgers = ref<Ledger[]>([]);
|
|
|
|
const createMain = (ledger: CreateMainLedgerCommand) => ledgerControllerApi.createMainLedger(ledger).then(response => {
|
|
const ledger = response.data;
|
|
|
|
ledgers.value.push(ledger);
|
|
return ledger;
|
|
});
|
|
|
|
const createCombining = (ledger: CreateCombiningLedgerCommand) => ledgerControllerApi.createCombiningLedger(ledger).then(response => {
|
|
const ledger = response.data;
|
|
|
|
ledgers.value.push(ledger);
|
|
return ledger;
|
|
});
|
|
|
|
const refresh = () => ledgerControllerApi.findAll().then(response => ledgers.value = response.data);
|
|
|
|
refresh();
|
|
|
|
return {ledgers, createMain, createCombining, refresh};
|
|
}) |