feat: global platform v2 update

This commit is contained in:
ivannoskov
2025-12-29 10:12:13 +03:00
parent 8e6a1fa83f
commit f64cf02100
84 changed files with 11023 additions and 11486 deletions

View File

@@ -2,33 +2,19 @@
// Auth API
// ============================================================================
import { api, saveAuthTokens, clearAuthTokens } from "./client";
import { api, clearAuthTokens } from "./client";
import { STORAGE_KEYS } from "@/lib/utils/constants";
import type {
User,
AuthInitResponse,
AuthCompleteRequest,
AuthCompleteResponse,
AuthRefreshRequest,
AuthRefreshResponse,
} from "@/lib/types/api";
import type { User, AuthCompleteResponse } from "@/lib/types/api";
export const authApi = {
/**
* Initialize Telegram auth flow
*/
init: () => api.get<AuthInitResponse>("/auth/init", { requireAuth: false }),
/**
* Complete auth with one-time token from bot
* GET /auth/complete?token=...
*/
complete: async (token: string): Promise<{ access_token: string }> => {
// GET request with token as query parameter
const response = await api.get<{ access_token: string }>(
complete: async (token: string): Promise<AuthCompleteResponse> => {
const response = await api.get<AuthCompleteResponse>(
`/auth/complete?token=${token}`,
{
requireAuth: false,
}
{ requireAuth: false }
);
// Save access token to storage
@@ -39,36 +25,9 @@ export const authApi = {
return response;
},
/**
* Refresh access token
*/
refresh: async (): Promise<string> => {
if (typeof window === "undefined") {
throw new Error("Cannot refresh token on server");
}
const refreshToken = localStorage.getItem(STORAGE_KEYS.REFRESH_TOKEN);
if (!refreshToken) {
throw new Error("No refresh token available");
}
const data: AuthRefreshRequest = { refresh_token: refreshToken };
const response = await api.post<AuthRefreshResponse>(
"/auth/refresh",
data,
{
requireAuth: false,
}
);
// Update access token
localStorage.setItem(STORAGE_KEYS.ACCESS_TOKEN, response.access_token);
return response.access_token;
},
/**
* Get current user info
* GET /auth/me
*/
me: () => api.get<User>("/auth/me"),