diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json index f079f07..c2848dc 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -14,6 +14,7 @@ "chart.js": "^4.4.0", "email-validator": "^2.0.4", "js-cookie": "^3.0.5", + "stores": "^1.0.0", "svelte-cookie": "^1.0.1", "svelte-fa": "^3.0.4", "svelte-simple-modal": "^1.6.1", @@ -30,7 +31,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.5.0" + "vite": "^4.4.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -651,9 +652,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.0.tgz", - "integrity": "sha512-a1wPIq2uO3RsTmV+KbA4venOgCJDbfHTXFe+g7eJR3N8l46DSuulUONJ1qnk2EnZWYC1Uj3Wbp3US0WFocIzXg==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.1.tgz", + "integrity": "sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -664,12 +665,12 @@ "esm-env": "^1.0.0", "kleur": "^4.1.5", "magic-string": "^0.30.0", - "mrmime": "^1.0.1", + "mime": "^3.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^2.0.2", "tiny-glob": "^0.2.9", - "undici": "~5.26.2" + "undici": "~5.25.0" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -975,6 +976,11 @@ "node": ">=4" } }, + "node_modules/curry": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/curry/-/curry-1.2.0.tgz", + "integrity": "sha512-PAdmqPH2DUYTCc/aknv6RxRxmqdRHclvbz+wP8t1Xpg2Nu13qg+oLb6/5iFoDmf4dbmC9loYoy9PwwGbFt/AqA==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1485,6 +1491,11 @@ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, + "node_modules/graceful-fs-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/graceful-fs-stream/-/graceful-fs-stream-0.0.1.tgz", + "integrity": "sha512-yZ9Lx4O/LbIQ0prZNtXOt97h8ICA2fwPcmSkrjZcOnXKrMzR8ao+kE78N76su0ffaawHLHyFYt75AkgHdVb41Q==" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -1742,6 +1753,18 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1773,6 +1796,25 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -1821,6 +1863,14 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2269,6 +2319,17 @@ "node": ">=0.10.0" } }, + "node_modules/stores": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stores/-/stores-1.0.0.tgz", + "integrity": "sha512-aOWM422mpxSj37uo9R1aVKDF2sDRCzjdbn6CYT/H9BECxuuliALmAZcmRVI9/Wq6Pu/HKDY1xZ+ssSuvY6fLlA==", + "dependencies": { + "curry": "~1.2.0", + "graceful-fs-stream": "0.0.1", + "mkdirp": "^0.5.1", + "on-headers": "^1.0.1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2446,9 +2507,9 @@ } }, "node_modules/undici": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", - "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", + "version": "5.25.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.4.tgz", + "integrity": "sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -2473,9 +2534,9 @@ "dev": true }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", + "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package.json b/src/main/java/com/faf223/expensetrackerfaf/web/package.json index ec1d9b6..4dcd8b3 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package.json @@ -20,7 +20,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.5.0" + "vite": "^4.4.2" }, "type": "module", "dependencies": { @@ -30,6 +30,7 @@ "chart.js": "^4.4.0", "email-validator": "^2.0.4", "js-cookie": "^3.0.5", + "stores": "^1.0.0", "svelte-cookie": "^1.0.1", "svelte-fa": "^3.0.4", "svelte-simple-modal": "^1.6.1", diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte index 8849016..c04b686 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte @@ -4,33 +4,52 @@ import QuickInfobar from "./other/QuickInfobar.svelte"; import { getCookie } from "svelte-cookie"; import {onMount} from "svelte"; - import {writable} from "svelte/store"; + + import {incomeData} from "../stores.js"; + import {expenseData} from "../stores.js"; + import {incomeTypes} from "../stores.js"; + import axios from "axios"; - const incomeData = writable([]); - const expenseData = writable([]); - onMount(async () => { - if (getCookie('access_token') === null ) { + onMount(() => { + if (getCookie('access_token') === null) { window.location.href = '/auth/login'; } - try { - const response = await axios.get('http://localhost:8081/incomes/personal-incomes', config); - incomeData.set(response.data); - } catch (error) { - console.error('Error fetching income data:', error); - } + const token = getCookie('access_token'); + const config = { + headers: { + 'Authorization': `Bearer ${token}` + } + }; - try { - const response = await axios.get('http://localhost:8081/expenses/personal-expenses', config); - expenseData.set(response.data); - } catch (error) { - console.error('Error fetching expense data:', error); - } + const incomePromise = axios.get('http://localhost:8081/incomes/personal-incomes', config) + .then(response => { + incomeData.set(response.data); + console.log("Received Income Data"); + }) + .catch(error => console.error('Error fetching income data:', error)); - console.log(getCookie('access_token')); - }) + const expensePromise = axios.get('http://localhost:8081/expenses/personal-expenses', config) + .then(response => { + expenseData.set(response.data); + console.log("Received Expense Data"); + }) + .catch(error => console.error('Error fetching expense data:', error)); + + const incomeTypesPromise = axios.get('http://localhost:8081/incomes/categories', config) + .then(response => { + incomeTypes.set(response.data); + console.log("Received Income Type Data"); + }) + .catch(error => console.error('Error:', error)); + + Promise.all([incomePromise, expensePromise, incomeTypesPromise]) + .then(() => { + console.log(getCookie('access_token')); + }); + });