From e66188b68143c3fa080dba150b9208a5875c07d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Valdemar=20=C3=85storp=20Beere?= <valdemb@stud.ntnu.no>
Date: Mon, 29 Apr 2024 08:50:58 +0200
Subject: [PATCH] refactor(store):

Add getUserStreak in userStore
---
 src/stores/userStore.ts | 22 +++++++++++++++++++++-
 src/types/streak.ts     |  4 ++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 src/types/streak.ts

diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts
index fe31bd1..39c9197 100644
--- a/src/stores/userStore.ts
+++ b/src/stores/userStore.ts
@@ -4,6 +4,8 @@ import type { User } from '@/types/user'
 import router from '@/router'
 import type { AxiosError } from 'axios'
 import axios from 'axios'
+import authInterceptor from "@/services/authInterceptor";
+import type {Streak} from "@/types/streak";
 
 export const useUserStore = defineStore('user', () => {
     const defaultUser: User = {
@@ -14,6 +16,7 @@ export const useUserStore = defineStore('user', () => {
 
     const user = ref<User>(defaultUser)
     const errorMessage = ref<string>('')
+    const streak = ref<Streak>()
 
     const register = async (
         firstname: string,
@@ -75,11 +78,28 @@ export const useUserStore = defineStore('user', () => {
         user.value = defaultUser
         router.push({ name: 'login' })
     }
+    const getUserStreak = async () => {
+        try {
+            const response = await authInterceptor('/profile/streak')
+            if (response.data) {
+                streak.value = response.data
+                console.log('Fetched Challenges:', streak.value)
+            } else {
+                streak.value = undefined;
+                console.error('No challenge content found:', response.data)
+            }
+        } catch (error) {
+            console.error('Error fetching challenges:', error)
+            streak.value = undefined // Ensure challenges is always an array
+        }
+    }
 
     return {
         register,
         login,
         logout,
-        errorMessage
+        errorMessage,
+        getUserStreak,
+        streak,
     }
 })
diff --git a/src/types/streak.ts b/src/types/streak.ts
new file mode 100644
index 0000000..79ac54f
--- /dev/null
+++ b/src/types/streak.ts
@@ -0,0 +1,4 @@
+export interface Streak {
+  streakStart?: string,
+  streak?: number,
+}
\ No newline at end of file
-- 
GitLab