60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import { fetchWithAuth } from "./client";
|
|
|
|
export const authApi = {
|
|
register: (data: { name: string; email: string; password: string }) =>
|
|
fetchWithAuth("/api/v1/auth/register", {
|
|
method: "POST",
|
|
body: JSON.stringify(data),
|
|
}),
|
|
login: (data: { email: string; password: string }) =>
|
|
fetchWithAuth("/api/v1/auth/login", {
|
|
method: "POST",
|
|
body: JSON.stringify(data),
|
|
}),
|
|
getMe: (token: string) => fetchWithAuth("/api/v1/auth/me", {}, token),
|
|
forgotPassword: (email: string) =>
|
|
fetchWithAuth("/api/v1/auth/forgot-password", {
|
|
method: "POST",
|
|
body: JSON.stringify({ email }),
|
|
}),
|
|
resetPassword: (token: string, newPassword: string) =>
|
|
fetchWithAuth("/api/v1/auth/reset-password", {
|
|
method: "POST",
|
|
body: JSON.stringify({ token, new_password: newPassword }),
|
|
}),
|
|
verifyEmail: (email: string, code: string) =>
|
|
fetchWithAuth("/api/v1/auth/verify-email", {
|
|
method: "POST",
|
|
body: JSON.stringify({ email, code }),
|
|
}),
|
|
resendVerification: (email: string) =>
|
|
fetchWithAuth("/api/v1/auth/resend-verification", {
|
|
method: "POST",
|
|
body: JSON.stringify({ email }),
|
|
}),
|
|
changePassword: (token: string, oldPassword: string, newPassword: string) =>
|
|
fetchWithAuth(
|
|
"/api/v1/auth/change-password",
|
|
{
|
|
method: "PUT",
|
|
body: JSON.stringify({
|
|
old_password: oldPassword,
|
|
new_password: newPassword,
|
|
}),
|
|
},
|
|
token
|
|
),
|
|
updateProfile: (
|
|
token: string,
|
|
data: { name?: string; avatar_url?: string }
|
|
) =>
|
|
fetchWithAuth(
|
|
"/api/v1/auth/profile",
|
|
{
|
|
method: "PUT",
|
|
body: JSON.stringify(data),
|
|
},
|
|
token
|
|
),
|
|
};
|