sarlink-portal/queries/authentication.ts
i701 9e2a2f430e
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 3m14s
refactor: update payment types and user interface, enhance error handling, and adjust API base URL
2025-04-05 23:25:17 +05:00

67 lines
1.7 KiB
TypeScript

"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<TAuthUser> {
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.SARLINK_API_BASE_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;
}