diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts index fe31bd1a782e8feadd79d12e5fc3338ade7f9f93..39c91976750e0651ed3e61980fefc86e3a8d10aa 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 0000000000000000000000000000000000000000..79ac54fed944addd0c7943919b0d50ee84c550ff --- /dev/null +++ b/src/types/streak.ts @@ -0,0 +1,4 @@ +export interface Streak { + streakStart?: string, + streak?: number, +} \ No newline at end of file