32 lines
640 B
TypeScript
32 lines
640 B
TypeScript
|
|
import { post, setToken } from './client'
|
||
|
|
import type {
|
||
|
|
LoginRequest,
|
||
|
|
LoginResponse,
|
||
|
|
RegisterRequest,
|
||
|
|
RegisterResponse,
|
||
|
|
} from './types'
|
||
|
|
|
||
|
|
export async function register(
|
||
|
|
username: string,
|
||
|
|
password: string,
|
||
|
|
email?: string
|
||
|
|
): Promise<RegisterResponse> {
|
||
|
|
return post<RegisterResponse>('/auth/register', {
|
||
|
|
username,
|
||
|
|
password,
|
||
|
|
email,
|
||
|
|
} satisfies RegisterRequest)
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function login(
|
||
|
|
username: string,
|
||
|
|
password: string
|
||
|
|
): Promise<LoginResponse> {
|
||
|
|
const data = await post<LoginResponse>('/auth/login', {
|
||
|
|
username,
|
||
|
|
password,
|
||
|
|
} satisfies LoginRequest)
|
||
|
|
setToken(data.token)
|
||
|
|
return data
|
||
|
|
}
|