"use server"; import type { TAuthUser } from "@/lib/types/user"; import axiosInstance from "@/utils/axiosInstance"; export async function login({ password, username, }: { username: string; password: string; }): Promise { const response = await axiosInstance .post("/auth/login/", { username: username, password: password, }) .then((res) => { console.log(res); return res.data; // Return the data from the response }) .catch((err) => { console.log(err.response); throw err; // Throw the error to maintain the Promise rejection }); return response; } export async function logout({ token }: { token: string }) { const response = await fetch( `${process.env.NEXT_PUBLIC_API_URL}/auth/logout/`, { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Token ${token}`, // Include the token for authentication }, }, ); if (response.status !== 204) { throw new Error("Failed to log out from the backend"); } console.log("logout res in backend", response); // Since the API endpoint returns 204 No Content on success, we don't need to parse JSON return null; // Return null to indicate a successful logout with no content } export async function checkIdOrPhone({ id_card, phone_number, }: { id_card?: string; phone_number?: string }) { console.log("id_card and phone_number", { id_card, phone_number }); const response = await fetch( `${process.env.SARLINK_API_BASE_URL}/api/auth/users/filter/?id_card=${id_card}&mobile=${phone_number}`, { method: "GET", headers: { "Content-Type": "application/json", }, }, ); const data = await response.json(); return data; }