import axios from "../../../config/axios";
import {
  CheckHasAccountPhoneType,
  CheckHasAccountType,
  LoginWithOtpType,
  LoginWithPasswordType,
  OtpVerifyType,
  RefreshTokenType,
  RegisterType,
} from "../types/AuthTypes";

export const loginWithPassword = async (params: LoginWithPasswordType) => {
  const { data } = await axios.post(`/auth/login`, params);
  return data;
};

export const loginWithOtp = async (params: LoginWithOtpType) => {
  const { data } = await axios.post(`/auth/otp/send`, params);
  return data;
};

export const otpVerify = async (params: OtpVerifyType) => {
  const { data } = await axios.post(`/auth/otp/verify`, params);
  return data;
};
export const checkHasAccount = async (params: CheckHasAccountType) => {
  const { data } = await axios.post(`/auth/check`, params);
  return data;
};

export const checkHasAccountRegister = async (
  params: CheckHasAccountPhoneType
) => {
  const { data } = await axios.post(`/auth/register/initiate`, params);
  return data;
};
export const register = async (params: RegisterType) => {
  const { data } = await axios.post(`/auth/register/complete`, params);
  return data;
};

export const refreshToken = async (params: RefreshTokenType) => {
  const { data } = await axios.post(`/auth/refresh`, params);
  return data;
};

export const logout = async () => {
  const { data } = await axios.post(`/auth/logout`);
  return data;
};
