35 lines
658 B
TypeScript
35 lines
658 B
TypeScript
import axios from "../http-client";
|
|
import type { FullUser } from "../types";
|
|
|
|
interface RegisterRequest {
|
|
email: string;
|
|
username: string;
|
|
displayName?: string;
|
|
password: string;
|
|
}
|
|
|
|
interface LoginRequest {
|
|
username: string;
|
|
password: string;
|
|
}
|
|
|
|
interface LoginResponse {
|
|
user: FullUser;
|
|
token: string;
|
|
}
|
|
|
|
export async function register(request: RegisterRequest) {
|
|
await axios.post("/auth/register", request);
|
|
}
|
|
|
|
export async function login(request: LoginRequest) {
|
|
const response = await axios.post("/auth/login", request);
|
|
|
|
return response.data as LoginResponse;
|
|
}
|
|
|
|
export default {
|
|
register,
|
|
login,
|
|
};
|