From 5accad5ae0b3d3a4c8ea8beedbb621e1a56ac700 Mon Sep 17 00:00:00 2001 From: vildemv <vildemv@ntnu.no> Date: Thu, 25 Apr 2024 11:58:22 +0200 Subject: [PATCH 1/2] Fixed logic for API calls to backend for expenses and transactions. --- src/utils/TransactionUtils.ts | 160 +++++++++++++++-------------- src/views/HomePage/EconomyView.vue | 29 +++--- 2 files changed, 99 insertions(+), 90 deletions(-) diff --git a/src/utils/TransactionUtils.ts b/src/utils/TransactionUtils.ts index c0f1f05..e565330 100644 --- a/src/utils/TransactionUtils.ts +++ b/src/utils/TransactionUtils.ts @@ -1,91 +1,95 @@ import axios from 'axios' -export const getTransactions = async (pageNumber: Number, pageSize: Number): Promise<any> => { +const transactionsList = [ + { + transactionId: 1, + transactionTitle: "Kiwi", + date: "15-05-2003", + debtorAccount: 12312312312, + debtorName: "Kiwi AS", + creditorAccount: 32131232132, + amount: 250, + currency: "NOK", + TransactionCategory: { + category: "Groceries" + } + }, + { + transactionId: 2, + transactionTitle: "Apple", + date: "16-05-2003", + debtorAccount: 12312312312, + debtorName: "Apple Inc.", + creditorAccount: 32131232132, + amount: 300, + currency: "NOK", + TransactionCategory: { + category: "Electronics" + } + }, + { + transactionId: 3, + transactionTitle: "Banana", + date: "17-05-2003", + debtorAccount: 12312312312, + debtorName: "Banana Corp.", + creditorAccount: 32131232132, + amount: 350, + currency: "NOK", + TransactionCategory: { + category: "Banana criminality" + } + }, + { + transactionId: 4, + transactionTitle: "Orange", + date: "18-05-2003", + debtorAccount: 12312312312, + debtorName: "Orange Ltd.", + creditorAccount: 32131232132, + amount: 400, + currency: "NOK", + TransactionCategory: { + category: "Annoying" + } + }, + { + transactionId: 4, + transactionTitle: "Crab", + date: "18-05-2003", + debtorAccount: 12312312312, + debtorName: "Crab Narcotics.", + creditorAccount: 32131232132, + amount: 400, + currency: "NOK", + TransactionCategory: { + category: "Drugs hehe" + } + } +]; + +export const getTransactions = async (token:string, pageNumber: Number, pageSize: Number): Promise<any> => { const config = { headers: { "Content-type": "application/json", - "Authorization": "Bearer " + "Ddaddaaddasasda" - } - } - const transactionsList = [ - { - transactionId: 1, - transactionTitle: "Kiwi", - date: "15-05-2003", - debtorAccount: 12312312312, - debtorName: "Kiwi AS", - creditorAccount: 32131232132, - amount: 250, - currency: "NOK", - TransactionCategory: { - category: "Groceries" - } - }, - { - transactionId: 2, - transactionTitle: "Apple", - date: "16-05-2003", - debtorAccount: 12312312312, - debtorName: "Apple Inc.", - creditorAccount: 32131232132, - amount: 300, - currency: "NOK", - TransactionCategory: { - category: "Electronics" - } - }, - { - transactionId: 3, - transactionTitle: "Banana", - date: "17-05-2003", - debtorAccount: 12312312312, - debtorName: "Banana Corp.", - creditorAccount: 32131232132, - amount: 350, - currency: "NOK", - TransactionCategory: { - category: "Banana criminality" - } - }, - { - transactionId: 4, - transactionTitle: "Orange", - date: "18-05-2003", - debtorAccount: 12312312312, - debtorName: "Orange Ltd.", - creditorAccount: 32131232132, - amount: 400, - currency: "NOK", - TransactionCategory: { - category: "Annoying" - } + 'Authorization': `Bearer ${token}` }, - { - transactionId: 4, - transactionTitle: "Crab", - date: "18-05-2003", - debtorAccount: 12312312312, - debtorName: "Crab Narcotics.", - creditorAccount: 32131232132, - amount: 400, - currency: "NOK", - TransactionCategory: { - category: "Drugs hehe" - } + params:{ + "page": pageNumber, + "size": pageSize } - ]; - - - const pageable = { - pageNum: pageNumber, - pageSize: pageSize } try { - await axios.post("localhost:8080/user/transaction/latest/expense", pageable, config) + console.log(token) + console.log('trying to get transactions') + console.log(config) + const result = await axios.get("http://localhost:8080/user/transaction/latest/expense", config) + + console.log(result.data); + return result.data; } catch (e: any) { - console.log("sending test data") - return transactionsList - // throw "Failed to fetch transacions: "+e.response.data + console.log(e) + throw e; } } diff --git a/src/views/HomePage/EconomyView.vue b/src/views/HomePage/EconomyView.vue index 029ba27..2372723 100644 --- a/src/views/HomePage/EconomyView.vue +++ b/src/views/HomePage/EconomyView.vue @@ -5,23 +5,24 @@ import { ArcElement, Chart as ChartJS, Colors, Legend, Tooltip } from 'chart.js' import TransactionComponent from '@/components/economy/TransactionComponent.vue' import ToggleButton from '@/components/economy/ToggleButton.vue' import { getTransactions } from '@/utils/TransactionUtils' +import { useTokenStore } from '@/stores/token' ChartJS.register(ArcElement,Tooltip,Legend, Colors) -const selectedOption = ref<string | null>("") +const token:string = useTokenStore().jwtToken; +const selectedOption = ref<string | null>("") //let page = 0; let pages = 0; let currentPage = 0; -const transactions = ref<any[]>([]) +const transactions = ref<[]>([]) const fetchTransactions = async() => { try{ - transactions.value = await getTransactions(1, 2) - //const response = await getTransactions(1,2) - //transactions.value = response.data - //fordi akk nå benytter vi av test data + const response = await getTransactions(token,0,6) + transactions.value = response + console.log(transactions.value) } catch (e) { console.log(e) } @@ -46,7 +47,9 @@ const handleSelectionChange = (value: string | null) => { const distinctCategories = computed(() => { const categories = new Set<string>() transactions.value.forEach(transaction => { - categories.add(transaction.TransactionCategory.category) + console.log(transaction.transactionCategory) + categories.add(transaction.transactionCategory) + console.log(categories) }) return Array.from(categories) }) @@ -57,11 +60,13 @@ const dropdownOptions = computed(() => { const filteredTransactions = computed(() => { if (selectedOption.value === 'Alle' || !selectedOption.value) { + console.log(transactions.value) return transactions.value } else { - return transactions.value.filter(transaction => transaction.TransactionCategory.category === selectedOption.value) + return transactions.value.filter(transaction => transaction.transactionCategory === selectedOption.value) } }) + const chartData = computed(() => { const data: { labels: string[], datasets: { data: number[], label:string ,backgroundColor: string[] }[] } = { labels: [], @@ -75,9 +80,9 @@ const chartData = computed(() => { const categoryAmounts: { [key: string]: number } = {}; transactions.value.forEach(transaction => { - const { TransactionCategory, amount } = transaction; - console.log(TransactionCategory) - const category = TransactionCategory.category + const { transactionCategory, amount } = transaction; + console.log(transactionCategory) + const category = transactionCategory if (category in categoryAmounts) { categoryAmounts[category] += amount; } else { @@ -161,7 +166,7 @@ const getRandomColor = () => { v-for="transaction in filteredTransactions" :key="transaction.transactionId" :title="transaction.transactionTitle" - :category="transaction.TransactionCategory.category" + :category="transaction.transactionCategory" :amount="transaction.amount" :date="transaction.date" ></transaction-component> -- GitLab From 5d5dad14ad13cd3761f8eae4bc294d6d8bc5a8f6 Mon Sep 17 00:00:00 2001 From: vildemv <vildemv@ntnu.no> Date: Thu, 25 Apr 2024 12:27:07 +0200 Subject: [PATCH 2/2] Fixed build error. --- src/views/HomePage/EconomyView.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/views/HomePage/EconomyView.vue b/src/views/HomePage/EconomyView.vue index 2372723..9d17cda 100644 --- a/src/views/HomePage/EconomyView.vue +++ b/src/views/HomePage/EconomyView.vue @@ -9,6 +9,15 @@ import { useTokenStore } from '@/stores/token' ChartJS.register(ArcElement,Tooltip,Legend, Colors) +interface Transaction { + "transactionCategory": string, + "transactionTitle": string, + "amount": number, + "transactionId": number, + "date": string, + +} + const token:string = useTokenStore().jwtToken; const selectedOption = ref<string | null>("") @@ -17,7 +26,7 @@ const selectedOption = ref<string | null>("") let pages = 0; let currentPage = 0; -const transactions = ref<[]>([]) +const transactions = ref<Transaction[]>([]) const fetchTransactions = async() => { try{ const response = await getTransactions(token,0,6) -- GitLab