import { makeRequest } from "@frontend/kitui"; import type { LoginRequest, LoginResponse, RegisterRequest, RegisterResponse, } from "@frontend/kitui"; import { parseAxiosError } from "../utils/parse-error"; const apiUrl = process.env.NODE_ENV === "production" ? "/auth" : "https://squiz.pena.digital/auth"; export async function register( login: string, password: string, phoneNumber: string, ): Promise<[RegisterResponse | null, string?]> { try { const registerResponse = await makeRequest< RegisterRequest, RegisterResponse >({ url: apiUrl + "/register", body: { login, password, phoneNumber }, useToken: false, withCredentials: true, }); return [registerResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Не удалось зарегестрировать аккаунт. ${error}`]; } } export async function login( login: string, password: string, ): Promise<[LoginResponse | null, string?]> { try { const loginResponse = await makeRequest({ url: apiUrl + "/login", body: { login, password }, useToken: false, withCredentials: true, }); return [loginResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Не удалось войти. ${error}`]; } } export async function logout(): Promise<[unknown, string?]> { try { const logoutResponse = await makeRequest({ url: apiUrl + "/logout", method: "POST", useToken: true, withCredentials: true, }); return [logoutResponse]; } catch (nativeError) { const [error] = parseAxiosError(nativeError); return [null, `Не удалось выйти. ${error}`]; } }