diff --git a/software/backend/routes/order.routes.ts b/software/backend/routes/order.routes.ts index 0a3df85..2de5f26 100644 --- a/software/backend/routes/order.routes.ts +++ b/software/backend/routes/order.routes.ts @@ -14,7 +14,7 @@ order.get("/:id", (req: Request, res: Response) => { ] }) .then(orders => { - res.status(200).json(orders).send() + res.status(200).json(orders) }) }) diff --git a/software/src/data/api/orderApi.ts b/software/src/data/api/orderApi.ts new file mode 100644 index 0000000..850fcdf --- /dev/null +++ b/software/src/data/api/orderApi.ts @@ -0,0 +1,7 @@ +import axios from "axios" + +const BASE_URL = "http://localhost:3000/orders" + +export async function getUserOrders(userId: number) { + return axios.get(BASE_URL + "/" + userId) +} \ No newline at end of file diff --git a/software/src/data/models/orderModel.ts b/software/src/data/models/orderModel.ts new file mode 100644 index 0000000..7923d13 --- /dev/null +++ b/software/src/data/models/orderModel.ts @@ -0,0 +1,9 @@ +import { OrderedItemModel } from "./orderedItemModel" + +export class OrderModel { + accountId: number + totalPrice: number + shippingProgress: number + orderItem: Array + createdAt: string +} \ No newline at end of file diff --git a/software/src/data/models/orderedItemModel.ts b/software/src/data/models/orderedItemModel.ts index bf9e4f3..2983f12 100644 --- a/software/src/data/models/orderedItemModel.ts +++ b/software/src/data/models/orderedItemModel.ts @@ -1,6 +1,8 @@ +import { ProductModel } from "./productModel" + export class OrderedItemModel { orderId: number = -1 - productId: number = -1 + product: ProductModel quantity: number = 1 totalPrice: number = 0 } \ No newline at end of file diff --git a/software/src/data/stores/userStore.ts b/software/src/data/stores/userStore.ts index 193f712..96b0672 100644 --- a/software/src/data/stores/userStore.ts +++ b/software/src/data/stores/userStore.ts @@ -6,13 +6,16 @@ import { AccountModel } from "../models/accountModel"; import { loginAccount, registerAccount, updateAccount } from "../api/accountApi"; import { useFeedbackStore } from "./feedbackStore"; import { BannerStateEnum } from "../enums/bannerStateEnum"; +import { OrderModel } from "../models/orderModel"; +import { getUserOrders } from "../api/orderApi"; export const useUserStore = defineStore('userStore', { state: () => ({ theme: useLocalStorage("hackmycart/userStore/theme", ThemeEnum.DARKRED), language: useLocalStorage("hackmycart/userStore/language", LanguageEnum.GERMAN), userAccount: useLocalStorage("hackmycart/userStore/userAccount", new AccountModel()), - loggedIn: useLocalStorage("hackmycart/userStore/loggedIn", false) + loggedIn: useLocalStorage("hackmycart/userStore/loggedIn", false), + orders: useLocalStorage>("hackmycart/userStore/orders", []) }), actions: { @@ -20,11 +23,16 @@ export const useUserStore = defineStore('userStore', { const feedbackStore = useFeedbackStore() await loginAccount(username, password) - .then(result => { - this.userAccount = result.data.account + .then(async result => { + this.userAccount = result.data this.loggedIn = true feedbackStore.changeBanner(BannerStateEnum.ACCOUNTLOGINSUCCESSFUL) + + await getUserOrders(result.data.id) + .then(result => { + this.orders = result.data + }) }) .catch(error => { this.loggedIn = false diff --git a/software/src/pages/loginPage/loginForm.vue b/software/src/pages/loginPage/loginForm.vue index 40c2745..ab70d12 100644 --- a/software/src/pages/loginPage/loginForm.vue +++ b/software/src/pages/loginPage/loginForm.vue @@ -5,8 +5,8 @@ import { ref } from 'vue'; const userStore = useUserStore() const showRegisterCard = defineModel("showRegisterCard", { type: Boolean, default: false }) -const username = ref("") -const password = ref("") +const username = ref("duranduran") +const password = ref("H4nn0ver") function startLogin() { userStore.login(username.value, password.value) diff --git a/software/src/pages/ordersPage/index.vue b/software/src/pages/ordersPage/index.vue index 83bef47..e6f63a3 100644 --- a/software/src/pages/ordersPage/index.vue +++ b/software/src/pages/ordersPage/index.vue @@ -1,19 +1,7 @@