Do not use a store for API
This commit is contained in:
@ -1,28 +0,0 @@
|
||||
import { defineStore } from "pinia";
|
||||
import { useSessionStore } from "./session";
|
||||
|
||||
export const useAPI = defineStore("api", {
|
||||
actions: {
|
||||
GET(path : string) {
|
||||
const sessionStore = useSessionStore();
|
||||
return fetch("/api/v1" + path, {
|
||||
headers: sessionStore.AuthHeaders,
|
||||
})
|
||||
},
|
||||
POST(path : string, body : FormData | string | null) {
|
||||
const sessionStore = useSessionStore();
|
||||
return fetch("/api/v1" + path, {
|
||||
method: "POST",
|
||||
headers: sessionStore.AuthHeaders,
|
||||
body: body,
|
||||
})
|
||||
},
|
||||
DELETE(path : string) {
|
||||
const sessionStore = useSessionStore();
|
||||
return fetch("/api/v1" + path, {
|
||||
method: "DELETE",
|
||||
headers: sessionStore.AuthHeaders,
|
||||
})
|
||||
},
|
||||
}
|
||||
});
|
@ -1,5 +1,5 @@
|
||||
import { defineStore } from "pinia"
|
||||
import { useAPI } from "./api";
|
||||
import { GET } from "../api";
|
||||
import { useSessionStore } from "./session";
|
||||
|
||||
interface State {
|
||||
@ -81,14 +81,12 @@ export const useAccountStore = defineStore("budget/account", {
|
||||
await this.FetchAccount(accountid);
|
||||
},
|
||||
async FetchAccount(accountid : string) {
|
||||
const api = useAPI();
|
||||
const result = await api.GET("/account/" + accountid + "/transactions");
|
||||
const result = await GET("/account/" + accountid + "/transactions");
|
||||
const response = await result.json();
|
||||
this.Transactions = response.Transactions;
|
||||
},
|
||||
async FetchMonthBudget(budgetid : string, year : number, month : number) {
|
||||
const api = useAPI();
|
||||
const result = await api.GET("/budget/" + budgetid + "/" + year + "/" + month);
|
||||
const result = await GET("/budget/" + budgetid + "/" + year + "/" + month);
|
||||
const response = await result.json();
|
||||
this.addCategoriesForMonth(year, month, response.Categories);
|
||||
},
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { defineStore } from "pinia";
|
||||
import { useAPI } from "./api";
|
||||
import { GET, POST } from "../api";
|
||||
import { useAccountStore } from "./budget-account";
|
||||
import { Budget, useSessionStore } from "./session";
|
||||
|
||||
@ -25,15 +25,13 @@ export const useBudgetsStore = defineStore('budget', {
|
||||
},
|
||||
actions: {
|
||||
ImportYNAB(formData: FormData) {
|
||||
const api = useAPI();
|
||||
return api.POST(
|
||||
return POST(
|
||||
"/budget/" + this.CurrentBudgetID + "/import/ynab",
|
||||
formData,
|
||||
);
|
||||
},
|
||||
async NewBudget(budgetName: string): Promise<void> {
|
||||
const api = useAPI();
|
||||
const result = await api.POST(
|
||||
const result = await POST(
|
||||
"/budget/new",
|
||||
JSON.stringify({ name: budgetName })
|
||||
);
|
||||
@ -51,8 +49,7 @@ export const useBudgetsStore = defineStore('budget', {
|
||||
await this.FetchBudget(budgetid);
|
||||
},
|
||||
async FetchBudget(budgetid: string) {
|
||||
const api = useAPI();
|
||||
const result = await api.GET("/budget/" + budgetid);
|
||||
const result = await GET("/budget/" + budgetid);
|
||||
const response = await result.json();
|
||||
for (const account of response.Accounts || []) {
|
||||
useAccountStore().Accounts.set(account.ID, account);
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { StorageSerializers, useStorage } from '@vueuse/core';
|
||||
import { defineStore } from 'pinia'
|
||||
import { useAPI } from './api';
|
||||
import { POST } from '../api';
|
||||
|
||||
interface State {
|
||||
Session: Session | null
|
||||
@ -40,14 +40,12 @@ export const useSessionStore = defineStore('session', {
|
||||
this.Budgets = x.Budgets;
|
||||
},
|
||||
async login(login: any) {
|
||||
const api = useAPI();
|
||||
const response = await api.POST("/user/login", JSON.stringify(login));
|
||||
const response = await POST("/user/login", JSON.stringify(login));
|
||||
const result = await response.json();
|
||||
return this.loginSuccess(result);
|
||||
},
|
||||
async register(login : any) {
|
||||
const api = useAPI();
|
||||
const response = await api.POST("/user/register", JSON.stringify(login));
|
||||
const response = await POST("/user/register", JSON.stringify(login));
|
||||
const result = await response.json();
|
||||
return this.loginSuccess(result);
|
||||
},
|
||||
|
Reference in New Issue
Block a user