feat: authentication integration

This commit is contained in:
2025-05-28 20:51:34 +02:00
parent a1ed1113d9
commit aa152a4127
26 changed files with 1371 additions and 662 deletions

View File

@ -1,29 +1,15 @@
import { handleApiError } from ".";
import type { UserProfile } from "@/types";
import { axios, handleApiError } from ".";
export interface FetchProfileResponse {
full_name: string;
email: string;
phone_number: string;
isAdmin: boolean;
last_login: string;
profile_picture: string | null;
updated_at: string;
created_at: string;
}
export type FetchProfileResponse = UserProfile;
export const fetchProfileApi = async (accessToken: string) => {
const response = await fetch("/api/v1/oauth/code", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
},
});
export const fetchProfileApi = async () => {
const response = await axios.get("/api/v1/auth/profile");
if (response.status !== 200 && response.status !== 201)
throw await handleApiError(response);
const data: FetchProfileResponse = await response.json();
const data: FetchProfileResponse = response.data;
return data;
};