feat : Otp verification Feature active.
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
import { notifications } from '@mantine/notifications';
|
||||
import axios from 'axios';
|
||||
|
||||
interface SendOtpPayload {
|
||||
mobileNumber?: string;
|
||||
type: string;
|
||||
@@ -12,73 +9,70 @@ interface SendOtpPayload {
|
||||
ref?: string;
|
||||
date?: string;
|
||||
userOtp?: string;
|
||||
username?: string
|
||||
username?: string;
|
||||
}
|
||||
|
||||
function getStoredMobileNumber(): string | null {
|
||||
function getStoredMobileNumber(): string {
|
||||
const mobileNumber = localStorage.getItem('remitter_mobile_no');
|
||||
// const mobileNumber = "7890544527";
|
||||
if (!mobileNumber) {
|
||||
notifications.show({
|
||||
title: 'Missing Mobile Number',
|
||||
message: 'Mobile number not found. Please re-login or update your profile.',
|
||||
color: 'red',
|
||||
});
|
||||
return null;
|
||||
}
|
||||
if (!mobileNumber) throw new Error('Mobile number not found.');
|
||||
return mobileNumber;
|
||||
}
|
||||
|
||||
export async function sendOtp(payload: SendOtpPayload) {
|
||||
try {
|
||||
const mobileNumber = payload.mobileNumber || getStoredMobileNumber();
|
||||
const response = await fetch('api/otp/send', {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ ...payload,mobileNumber}),
|
||||
})
|
||||
console.log('otp sended.');
|
||||
return await response.json();
|
||||
} catch (error: any) {
|
||||
console.error('Error sending OTP:', error.response?.data || error.message);
|
||||
throw error.response?.data || error;
|
||||
const mobileNumber = payload.mobileNumber || getStoredMobileNumber();
|
||||
|
||||
const response = await fetch('/api/otp/send', {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ ...payload, mobileNumber }),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('OTP sended failed.');
|
||||
const errorMsg = data?.error || 'Send OTP failed. Please try again later.';
|
||||
throw new Error(errorMsg);
|
||||
}
|
||||
console.log('OTP sended.');
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function verifyOtp(otp: string) {
|
||||
try {
|
||||
const mobileNumber = getStoredMobileNumber();
|
||||
const response = await fetch(`/api/otp/verify?mobileNumber=${mobileNumber}`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({otp}),
|
||||
})
|
||||
console.log('Otp verified');
|
||||
return await response.json();
|
||||
} catch (error: any) {
|
||||
console.error('Error verifying OTP:', error.response?.data || error.message);
|
||||
throw error.response?.data || error;
|
||||
const mobileNumber = getStoredMobileNumber();
|
||||
|
||||
const response = await fetch(`/api/otp/verify?mobileNumber=${mobileNumber}`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ otp }),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('OTP not verified.');
|
||||
const errorMsg = data?.error || 'OTP verification failed.';
|
||||
throw new Error(errorMsg);
|
||||
}
|
||||
console.log('OTP verified.');
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function verifyLoginOtp(otp: string, mobileNumber: string) {
|
||||
try {
|
||||
// const mobileNumber = getStoredMobileNumber();
|
||||
const response = await fetch(`/api/otp/verify?mobileNumber=${mobileNumber}`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({otp}),
|
||||
})
|
||||
console.log('Otp verified.');
|
||||
return await response.json();
|
||||
} catch (error: any) {
|
||||
console.error('Error verifying OTP:', error.response?.data || error.message);
|
||||
throw error.response?.data || error;
|
||||
const response = await fetch(`/api/otp/verify?mobileNumber=${mobileNumber}`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ otp }),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('Login OTP not verified.');
|
||||
const errorMsg = data?.error || 'OTP verification failed.';
|
||||
throw new Error(errorMsg);
|
||||
}
|
||||
}
|
||||
console.log("Login OTP verified");
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user