import type { ApiResponse } from '@/types/apiResponse'; import type { FetchPromise } from '@/types/fetchPromise'; import type { CompleteUserInformationRequest, ConfirmEmailOtpRequest, ConfirmForgetPassCodeRequest, ConfirmOtpResponse, ConfirmSmsOtpRequest, GetUserStatusByPhoneNumberOrEmailRequest, GetUserStatusByPhoneNumberOrEmailResponse, LoginOrSignUpWithGoogleRequest, LoginOrSignUpWithGoogleResponse, LoginRequest, LoginResponse, PasswordLoginRequest, ResetPasswordRequest, ResetPasswordResponse, SendEmailOtpRequest, SendForgetPassCodeRequest, SendSmsOtpRequest, } from '../types/userTypes'; const API_URL = 'https://accounts.business-harmony.com/api'; export const fetchRequest = ( url: string, body: Object | null, ): FetchPromise => { return fetch(`${API_URL}/${url}`, { body: JSON.stringify(body), method: 'POST', headers: { 'Content-Type': 'application/json', }, }); }; // GetUserStatusByPhoneNumberOrEmail export const getUserStatusByPhoneNumberOrEmail = async ( body: GetUserStatusByPhoneNumberOrEmailRequest, ) => { return fetchRequest( 'User/GetUserStatusByPhoneNumberOrEmail', body, ); }; export const loginOrSignUpWithOtp = async (body: LoginRequest) => { return fetchRequest('User/LoginOrSignUpWithOtp', body); }; export const loginWithPassword = async (body: PasswordLoginRequest) => { return fetchRequest('User/LoginWithPassword', body); }; export const sendSmsOtp = async (body: SendSmsOtpRequest) => { return fetchRequest('User/SendSmsOtp', body); }; export const sendEmailOtp = async (body: SendEmailOtpRequest) => { return fetchRequest('User/SendEmailOtp', body); }; export const confirmSmsOtp = async (body: ConfirmSmsOtpRequest) => { return fetchRequest('User/ConfirmSmsOtp', body); }; export const confirmEmailOtp = async (body: ConfirmEmailOtpRequest) => { return fetchRequest('User/ConfirmEmailOtp', body); }; export const resetPassword = async (body: ResetPasswordRequest) => { return fetchRequest('User/ResetPassword', body); }; export const sendForgetPassCode = async (body: SendForgetPassCodeRequest) => { return fetchRequest('User/SendForgetPassCode', body); }; export const confirmForgetPassCode = async ( body: ConfirmForgetPassCodeRequest, ) => { return fetchRequest('User/ConfirmForgetPassCode', body); }; export const loginOrSignUpWithGoogle = async ( body: LoginOrSignUpWithGoogleRequest, ) => { return fetchRequest( 'User/LoginOrSignUpWithGoogle', body, ); }; export const completeUserInformation = async ( body: CompleteUserInformationRequest, ) => { return fetchRequest('User/CompleteUserInformation', body); }; export const logOut = async () => { return fetchRequest('User/LogOut', {}); };