feat: Introduce useCourse and useAuth composables, and add new pages for user registration and dynamic course details.

This commit is contained in:
supalerk-ar66 2026-01-22 11:04:57 +07:00
parent ffd2d55e33
commit 7b22699b13
4 changed files with 7 additions and 46 deletions

View file

@ -1,9 +1,4 @@
// Shared global state for current user
import type { H3Event } from 'h3'
// Types based on API responses
interface User {
id: number
username: string
@ -64,9 +59,8 @@ export const useAuth = () => {
secure: false
})
// ... (previous code)
// Login
const login = async (credentials: { email: string; password: string }) => {
try {
const data = await $fetch<loginResponse>(`${API_BASE_URL}/auth/login`, {
@ -98,7 +92,6 @@ export const useAuth = () => {
}
}
// Register
const register = async (payload: RegisterPayload) => {
try {
const data = await $fetch(`${API_BASE_URL}/auth/register-learner`, {
@ -117,7 +110,6 @@ export const useAuth = () => {
}
}
// Fetch User Profile (/api/user/me)
const fetchUserProfile = async () => {
if (!token.value) return
@ -160,7 +152,6 @@ export const useAuth = () => {
}
}
// Update User Profile
const updateUserProfile = async (payload: {
first_name: string
last_name: string
@ -188,7 +179,6 @@ export const useAuth = () => {
}
}
// Request Password Reset
const requestPasswordReset = async (email: string) => {
try {
await $fetch(`${API_BASE_URL}/auth/reset-request`, {
@ -202,7 +192,6 @@ export const useAuth = () => {
}
}
// Confirm Reset Password
const confirmResetPassword = async (payload: { token: string; password: string }) => {
try {
await $fetch(`${API_BASE_URL}/auth/reset-password`, {
@ -216,7 +205,6 @@ export const useAuth = () => {
}
}
// Change Password
const changePassword = async (payload: { oldPassword: string, newPassword: string }) => {
if (!token.value) return { success: false, error: 'ไม่พบ Token การใช้งาน' }
@ -235,7 +223,6 @@ export const useAuth = () => {
}
}
// Refresh Access Token
const refreshAccessToken = async () => {
if (!refreshToken.value) return false
@ -258,7 +245,6 @@ export const useAuth = () => {
return false
}
// Logout
const logout = () => {
token.value = null
refreshToken.value = null // Clear refresh token