// services import APIService from "services/api.service"; const { NEXT_PUBLIC_API_BASE_URL } = process.env; class AuthService extends APIService { constructor() { super(NEXT_PUBLIC_API_BASE_URL || "http://localhost:8000"); } async emailLogin(data: any) { return this.post("/api/sign-in/", data, { headers: {} }) .then((response) => { this.setAccessToken(response?.data?.access_token); this.setRefreshToken(response?.data?.refresh_token); return response?.data; }) .catch((error) => { throw error?.response?.data; }); } async socialAuth(data: any) { return this.post("/api/social-auth/", data, { headers: {} }) .then((response) => { this.setAccessToken(response?.data?.access_token); this.setRefreshToken(response?.data?.refresh_token); return response?.data; }) .catch((error) => { throw error?.response?.data; }); } async emailCode(data: any) { return this.post("/api/magic-generate/", data, { headers: {} }) .then((response) => response?.data) .catch((error) => { throw error?.response?.data; }); } async magicSignIn(data: any) { const response = await this.post("/api/magic-sign-in/", data, { headers: {} }); if (response?.status === 200) { this.setAccessToken(response?.data?.access_token); this.setRefreshToken(response?.data?.refresh_token); return response?.data; } throw response.response.data; } async signOut() { return this.post("/api/sign-out/", { refresh_token: this.getRefreshToken() }) .then((response) => { this.purgeAccessToken(); this.purgeRefreshToken(); return response?.data; }) .catch((error) => { this.purgeAccessToken(); this.purgeRefreshToken(); throw error?.response?.data; }); } } export default new AuthService();