adminFront/src/api/auth.ts

70 lines
1.7 KiB
TypeScript

import makeRequest from "@root/api/makeRequest";
import { parseAxiosError } from "@root/utils/parse-error";
import type {
LoginRequest,
RegisterRequest,
RegisterResponse,
} from "@frontend/kitui";
const baseUrl = process.env.REACT_APP_DOMAIN + "/auth"
export const signin = async (
login: string,
password: string
): Promise<[RegisterResponse | null, string?]> => {
try {
const signinResponse = await makeRequest<LoginRequest, RegisterResponse>({
url: baseUrl + "/login",
body: { login, password },
useToken: false,
});
return [signinResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
console.error(error)
return [null, `Ошибка авторизации. ${error}`];
}
};
export const register = async (
login: string,
password: string,
phoneNumber: string = "--"
): Promise<[RegisterResponse | null, string?]> => {
try {
const registerResponse = await makeRequest<
RegisterRequest,
RegisterResponse
>({
url: baseUrl + "/register",
body: { login, password, phoneNumber },
useToken: false,
});
return [registerResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка регистрации. ${error}`];
}
};
export const logout = async (): Promise<[unknown, string?]> => {
try {
const logoutResponse = await makeRequest<never, unknown>({
url: baseUrl + "/logout",
method: "post",
contentType: true,
});
return [logoutResponse];
} catch (nativeError) {
const [error] = parseAxiosError(nativeError);
return [null, `Ошибка выхода из аккаунта. ${error}`];
}
};