From d990d224ab3d2459acfa4756647cb8211e0953c8 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 24 Oct 2023 23:36:47 +0300 Subject: [PATCH] Connecting front to back --- .../expensetrackerfaf/web/package-lock.json | 37 +++++++++++- .../faf223/expensetrackerfaf/web/package.json | 5 +- .../src/routes/auth/login/LoginForm.svelte | 60 ++++++++++++++----- .../routes/auth/register/RegisterForm.svelte | 2 +- .../dashboard/board/graphs/Graph1.svelte | 7 ++- 5 files changed, 90 insertions(+), 21 deletions(-) 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 720921d..d332004 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -13,7 +13,10 @@ "axios": "^1.5.1", "chart.js": "^4.4.0", "email-validator": "^2.0.4", - "svelte-fa": "^3.0.4" + "js-cookie": "^3.0.5", + "svelte-cookie": "^1.0.1", + "svelte-fa": "^3.0.4", + "svelte-spa-router": "^3.3.0" }, "devDependencies": { "@fontsource/fira-mono": "^4.5.10", @@ -1615,6 +1618,14 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2131,6 +2142,14 @@ } ] }, + "node_modules/regexparam": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.1.tgz", + "integrity": "sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==", + "engines": { + "node": ">=8" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2341,6 +2360,11 @@ "node": ">=16" } }, + "node_modules/svelte-cookie": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/svelte-cookie/-/svelte-cookie-1.0.1.tgz", + "integrity": "sha512-c4cXLMeG7vlAk3Q5axjxlppMJgeLLWd/6cCvo1wEL6ZwEueVHAP71SBRi9r5XmLYnCYr7eAqlK6NrYT/29KuKQ==" + }, "node_modules/svelte-eslint-parser": { "version": "0.33.1", "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", @@ -2385,6 +2409,17 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-spa-router": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-3.3.0.tgz", + "integrity": "sha512-cwRNe7cxD43sCvSfEeaKiNZg3FCizGxeMcf7CPiWRP3jKXjEma3vxyyuDtPOam6nWbVxl9TNM3hlE/i87ZlqcQ==", + "dependencies": { + "regexparam": "2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ItalyPaleAle" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package.json b/src/main/java/com/faf223/expensetrackerfaf/web/package.json index 6e015a3..ee464f0 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package.json @@ -29,6 +29,9 @@ "axios": "^1.5.1", "chart.js": "^4.4.0", "email-validator": "^2.0.4", - "svelte-fa": "^3.0.4" + "js-cookie": "^3.0.5", + "svelte-cookie": "^1.0.1", + "svelte-fa": "^3.0.4", + "svelte-spa-router": "^3.3.0" } } diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte index a0284fa..5d11866 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte @@ -1,29 +1,57 @@ @@ -39,7 +67,7 @@ event => {username = event.target.value} }> {password = event.target.password} + event => {password = event.target.value} }> Forgot your password? diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte index 002540f..076d8a7 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte @@ -8,7 +8,7 @@ function submitForm(event) { event.preventDefault(); console.log("Tried to submit!"); - console.log("Valid? ", (validateEmail() && validateUsername() && va && validatePassword() ? "Yes" : "No")); + console.log("Valid? ", (validateEmail() && validateUsername() && validatePassword() ? "Yes" : "No")); } function validateEmail() { diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte index 44f850e..5c3db43 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte @@ -2,20 +2,23 @@ import Chart from 'chart.js/auto'; import { onMount } from 'svelte'; import axios from 'axios'; + import {getCookie} from "svelte-cookie"; let ctx; let chartCanvas; onMount(async () => { + + const token = getCookie('access_token'); const config = { headers: { - 'Authorization': `Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYW4uYmFsYW5AZ21haWwuY29tIiwiaWF0IjoxNjk3NzQ0MjY3LCJleHAiOjE2OTc4MzA2Njd9.hzbEDDuOVCY_EQAA8xGlJskQ2FQjw8o0CtFKB1dKYOU` + 'Authorization': `Bearer ${token}` } }; try { const response = await axios.get('http://localhost:8081/incomes/00112233-4455-6677-8899-aabbccddeeaa', config); - const incomeData = response.data; // Assuming the response is an array of income data + const incomeData = response.data; const chartLabels = incomeData.map(item => item.category.categoryName); const chartValues = incomeData.map(item => item.amount);