66 lines
1.3 KiB
TypeScript
66 lines
1.3 KiB
TypeScript
import axios from "~/lib/axios";
|
|
import { handleError, handleSuccess } from ".";
|
|
|
|
class AuthApiService {
|
|
async login(credentials: { input: string; password: string }) {
|
|
try {
|
|
const { data } = await axios({
|
|
url: "auth/login",
|
|
data: credentials,
|
|
method: "POST",
|
|
withCredentials: true,
|
|
});
|
|
|
|
return data as IResponse<boolean>;
|
|
} catch (error) {
|
|
handleError(error);
|
|
}
|
|
}
|
|
|
|
async logout() {
|
|
try {
|
|
const { data } = await axios({
|
|
url: "auth/logout",
|
|
method: "POST",
|
|
withCredentials: true,
|
|
});
|
|
|
|
return data as IResponse<boolean>;
|
|
} catch (error) {
|
|
handleError(error);
|
|
}
|
|
}
|
|
|
|
async changePassword(credentials: { newPassword: string; password: string }) {
|
|
try {
|
|
const { data } = await axios({
|
|
url: "auth/change-password",
|
|
data: credentials,
|
|
method: "POST",
|
|
withCredentials: true,
|
|
});
|
|
|
|
handleSuccess(data);
|
|
return data as IResponse<boolean>;
|
|
} catch (error) {
|
|
handleError(error);
|
|
}
|
|
}
|
|
|
|
async me() {
|
|
try {
|
|
const { data } = await axios({
|
|
url: "auth/me",
|
|
method: "GET",
|
|
withCredentials: true,
|
|
});
|
|
|
|
return data as IResponse<IUser>;
|
|
} catch (error) {
|
|
handleError(error);
|
|
}
|
|
}
|
|
}
|
|
|
|
export const authApi = new AuthApiService();
|