All files / src/api auth.api.ts

0% Statements 0/15
0% Branches 0/1
0% Functions 0/1
0% Lines 0/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                                                                                                           
import api from './axios'
import type { User } from '@/types'
 
export interface LoginCredentials {
  username: string
  password: string
}
 
export interface RegisterData {
  email: string
  username: string
  password: string
  role?: string
  courseId?: string
}
 
export interface AuthToken {
  access_token: string
  token_type: string
}
 
// ----------------------------------------------------------------
// AUTH API
// ----------------------------------------------------------------
export const authApi = {
  /**
   * Login user
   */
  login: (credentials: LoginCredentials) => {
    return api.post<AuthToken>('/auth/login', credentials)
  },
 
  /**
   * Register new user
   */
  register: (data: RegisterData) => {
    return api.post<AuthToken>('/auth/register', data)
  },
 
  /**
   * Get current user info
   */
  me: () => {
    return api.get<User>('/auth/me')
  },
 
  /**
   * Refresh access token
   */
  refresh: () => {
    return api.post<AuthToken>('/auth/refresh')
  },
}