adding verification

This commit is contained in:
Ebube
2023-04-26 13:09:57 +01:00
parent 02fe8cb399
commit 6c68c2361c
7 changed files with 260 additions and 115 deletions
+3 -1
View File
@@ -22,7 +22,7 @@ import UpdatePasswordPages from "./views/UpdatePasswordPages";
import UploadProductPage from "./views/UploadProductPage";
import UserProfilePage from "./views/UserProfilePage";
import VerifyYouPages from "./views/VerifyYouPages";
import VerifyLinkPages from "./views/VerifyLinkPages";
import RemindersPage from './views/RemindersPage';
import TrackingPage from "./views/TrackingPage";
import CalendarPage from "./views/CalendarPage";
@@ -49,6 +49,8 @@ export default function Routers() {
element={<UpdatePasswordPages />}
/>
<Route exact path="/verify-you" element={<VerifyYouPages />} />
<Route exact path="/verify-link" element={<VerifyLinkPages />} />
<Route path={`/vemail?`} element={<VerifyLinkPages />} />
{/* private route */}
<Route element={<AuthRoute />}>
+1 -1
View File
@@ -97,7 +97,7 @@ export default function Login() {
<img src={WrenchBoard} alt="wrenchboard" className="h-10 mx-auto" />
</Link>
</div>
<div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center xl:bg-white dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5">
<div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5">
<div className="w-full">
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3" style={{
@@ -0,0 +1,101 @@
import { useEffect, useState } from "react";
import { useLocation } from "react-router-dom";
import AuthLayout from "../AuthLayout";
import InputCom from "../../Helpers/Inputs/InputCom";
import usersService from "../../../services/UsersService";
export default function VerifyLink() {
const [pageLoader, setPageLoader] = useState(true)
const location = useLocation();
const queryParams = new URLSearchParams(location?.search)
const token = queryParams.get('vlink')
const verifyEmail = async (code) => {
const userApi = new usersService()
try {
const verifyRes = await userApi.verifyEmail(code)
console.log(verifyRes)
if(verifyRes.internal_return === 0) {
let {data} = verifyRes
} else {
}
} catch (error) {
console.log(error)
throw new Error(error)
}
}
useEffect(() => {
verifyEmail(token)
}, [])
console.log(token)
return (
<>
<AuthLayout
slogan="Welcome to WrenchBoard"
>
<div className="content-wrapper login dark:bg-dark-white w-full lg:max-w-[500px] 2xl:w-[828px] rounded-xl flex flex-col justify-center sm:p-7 p-5">
<div className="w-full">
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3" style={{
fontSize: 'calc(1rem + .6vw)'
}}>
Sign In to WrenchBoard
</h1>
</div>
<div className="input-area">
{/* INPUT */}
<div className="mb-5">
<InputCom
// value={password}
// inputHandler={handlePassword}
placeholder="support@mermsemr.com"
label="Email"
name="email"
type="email"
iconName="message"
/>
</div>
<div className="mb-5">
<InputCom
// value={password}
// inputHandler={handlePassword}
placeholder="● ● ● ● ● ●"
label="Password"
name="password"
type="password"
iconName="password"
/>
</div>
<div className="signin-area mb-3.5">
<button
// onClick={doLogin}
type="button"
className={`btn-login rounded-[0.475rem] mb-6 text-xl text-white flex justify-center bg-[#4687ba] hover:bg-[#009ef7] transition-all duration-300 items-center ${loginLoading ? "active" : ""
}`}
>
{loginLoading ? (
<div className="signup btn-loader"></div>
) : (
<span>Continue</span>
)}
</button>
{/* <a
href="/update-password"
className="w-full rounded-[50px] h-[58px] mb-6 text-xl text-white font-bold flex justify-center bg-purple items-center"
>
Continue
</a> */}
</div>
</div>
</div>
</div>
</AuthLayout>
</>
)
}
+43 -19
View File
@@ -9,33 +9,57 @@ export default function VerifyYou() {
<AuthLayout
slogan="Welcome to WrenchBoard"
>
<div className="content-wrapper xl:bg-white dark:bg-dark-white w-full sm:w-auto px-5 xl:px-[70px] 2xl:px-[100px] h-[818px] rounded-xl flex flex-col justify-center">
<div>
<div className="title-area flex flex-col justify-center items-center relative text-center mb-8">
<h1 className="sm:text-5xl text-4xl font-bold leading-[74px] text-dark-gray dark:text-white">
Verification Code
<div className="content-wrapper login dark:bg-dark-white w-full lg:max-w-[500px] 2xl:w-[828px] rounded-xl flex flex-col justify-center sm:p-7 p-5">
<div className="w-full">
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3" style={{
fontSize: 'calc(1rem + .6vw)'
}}>
Sign In to WrenchBoard
</h1>
<div className="shape sm:w-[377px] w-[270px] -mt-5 ml-5">
<img src={titleShape} alt="shape" />
</div>
</div>
<div className="input-area">
<Otp />
{/* INPUT */}
<div className="mb-5">
<InputCom
// value={password}
// inputHandler={handlePassword}
placeholder="support@mermsemr.com"
label="Email"
name="email"
type="email"
iconName="message"
/>
</div>
<div className="mb-5">
<InputCom
// value={password}
// inputHandler={handlePassword}
placeholder="● ● ● ● ● ●"
name="password"
type="password"
iconName="password"
/>
</div>
<div className="signin-area mb-3.5">
<a
<button
// onClick={doLogin}
type="button"
className={`btn-login rounded-[0.475rem] mb-6 text-xl text-white flex justify-center bg-[#4687ba] hover:bg-[#009ef7] transition-all duration-300 items-center ${loginLoading ? "active" : ""
}`}
>
{loginLoading ? (
<div className="signup btn-loader"></div>
) : (
<span>Continue</span>
)}
</button>
{/* <a
href="/update-password"
className="w-full rounded-[50px] h-[58px] mb-6 text-xl text-white font-bold flex justify-center bg-purple items-center"
>
Continue
</a>
</div>
<div className="resend-code flex justify-center">
<p className="text-lg text-thin-light-gray font-normal">
Dontt have an aceount ?
<a href="#" className="ml-2 text-dark-gray dark:text-white font-bold">
Please resend
</a>
</p>
</a> */}
</div>
</div>
</div>
+104 -94
View File
@@ -6,12 +6,12 @@ class usersService {
console.log("WRB Service Entry");
}
CreateUser(reqData){
CreateUser(reqData) {
localStorage.setItem("session_token", ``);
return this.postAuxEnd("/createuser", reqData);
}
getHomeDate(){
getHomeDate() {
var postData = {
uuid: localStorage.getItem("uuid"),
member_id: localStorage.getItem("member_id"),
@@ -31,8 +31,8 @@ class usersService {
};
return this.postAuxEnd("/getjobsdata", postData);
}
//
getUserBankList(reqData){
//
getUserBankList(reqData) {
var postData = {
uuid: localStorage.getItem("uuid"),
member_id: localStorage.getItem("member_id"),
@@ -40,7 +40,7 @@ class usersService {
};
return this.postAuxEnd("/mybanklist", postData);
}
getUserWallets(reqData){
getUserWallets(reqData) {
var postData = {
uuid: localStorage.getItem("uuid"),
member_id: localStorage.getItem("member_id"),
@@ -48,113 +48,114 @@ class usersService {
};
return this.postAuxEnd("/getwallets", postData);
}
getApiGate(){
getApiGate() {
// localStorage.setItem("session_token", ``);
return this.postAuxEnd("/apigate", null);
}
getLoadProfile(){
getLoadProfile() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
page: 0,
limit: 100
};
return this.postAuxEnd("/loadprofile", null);
}
getOffersList(){
getOffersList() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
page: 0,
limit: 100
};
return this.postAuxEnd("/offerslist", null);
}
getPendingJob(){
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100};
return this.postAuxEnd("/pendingjob", postData);
}
getActiveJobList(){
getPendingJob() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
page: 0,
limit: 100
};
return this.postAuxEnd("/pendingjob", postData);
}
getActiveJobList() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page: 0,
limit: 100
};
return this.postAuxEnd("/getjobsdata", postData);
}
getMyJobList(){
getMyJobList() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
page: 0,
limit: 100
};
return this.postAuxEnd("/myjobs", postData);
}
getGetPendingJobs(){
getGetPendingJobs() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
page: 0,
limit: 100
};
return this.postAuxEnd("/getpendingjobs", postData);
}
getUsersCards(){
var postData = {
uuid: localStorage.getItem("uid"),
getUsersCards() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
};
page: 0,
limit: 100
};
return this.postAuxEnd("/userscards", postData);
}
getCouponPending(){
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
};
getCouponPending() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page: 0,
limit: 100
};
return this.postAuxEnd("/couponpending", postData);
}
// API FUNCTION TO GET COUPON HISTORY
getRecipient(){
getRecipient() {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:1,
limit :20,
page: 1,
limit: 20,
action: 11175
};
return this.postAuxEnd("/recipients", postData);
}
// API FUNCTION TO GET SEND MONEY FEE
getSendMoneyFee(amount){
getSendMoneyFee(amount) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
@@ -166,95 +167,95 @@ class usersService {
}
// API FUNCTION TO GET COUPON HISTORY
getCouponHx(){
getCouponHx() {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:1,
limit :20,
page: 1,
limit: 20,
action: 85025
};
return this.postAuxEnd("/couponhx", postData);
}
getPurchaseHx(){
getPurchaseHx() {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:1,
limit :20,
page: 1,
limit: 20,
action: 15049
};
return this.postAuxEnd("/purchasehx", postData);
}
// API FUNCTION TO GET PAYMENT HISTORY
getPaymentHx(){
getPaymentHx() {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:1,
limit :20,
page: 1,
limit: 20,
action: 15046
};
return this.postAuxEnd("/paymenthx", postData);
}
//END POINT CALL FOR REFERRAL HISTORY
getReferralHx(){
getReferralHx() {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
offset: 1,
limit :100,
action: 11064
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
offset: 1,
limit: 100,
action: 11064
};
return this.postAuxEnd("/refferhx", postData);
}
//END POINT CALL FOR UPDATE PROFILE
updateProfile(post){
updateProfile(post) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
action: 5031,
...post
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
action: 5031,
...post
};
return this.postAuxEnd("/updateprofile", postData);
}
//END POINT CALL FOR GETTING USER PROFILE
loadProfile(post){
loadProfile(post) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
};
return this.postAuxEnd("/loadprofile", postData);
}
//END POINT CALL FOR SENDING REFERRAL MESSAGE
sendReferralMsg(postData){
sendReferralMsg(postData) {
return this.postAuxEnd("/sendreferral", postData);
}
StartResetPassword(reqData){
StartResetPassword(reqData) {
return this.postAuxEnd("/startresetpasword", reqData)
}
getCouponRedeem(){
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page:0,
limit :100
};
getCouponRedeem() {
var postData = {
uuid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
page: 0,
limit: 100
};
return this.postAuxEnd("/couponredeem", postData);
}
@@ -310,9 +311,17 @@ class usersService {
*/
getUserReminders(){
getUserReminders() {
return this.getAuxEnd("/reminders", null);
}
verifyEmail(code) {
const reqData = {
verify_link: code,
action: 11015
}
return this.postAuxEnd("/verifysignuplink", reqData);
}
//---------------------------------------- -----
//---------------------------------------- -----
// Unified call below
@@ -328,10 +337,11 @@ class usersService {
}
};
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
return Axios.get(endPoint,{
return Axios.get(endPoint, {
params: {
reqData
}})
}
})
.then((response) => {
console.log("~~~~~~~ Toks2 GET ~~~~~~~~");
return response;
@@ -354,22 +364,22 @@ class usersService {
postAuxEnd(uri, reqData) {
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
const session_token = localStorage.getItem("session_token");
// session_token = session_token !=null ?session_token : '';
// session_token = session_token !=null ?session_token : '';
// 'Authorization': `Basic ${(session_token !=null) ?session_token : ''}`,
let axiosConfig = {
headers: {
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Expose-Headers': 'Access-Control-Allow-Origin',
'Access-Control-Allow-Headers':'Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token',
'Access-Control-Allow-Headers': 'Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token',
'Content-Type': 'application/json;charset=UTF-8',
}
};
// Axios.defaults.headers.post['Content-Type'] ='application/json;charset=utf-8';
// Axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*'; //,axiosConfig
// Axios.defaults.withCredentials = true;
//debugger;
// Axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*'; //,axiosConfig
// Axios.defaults.withCredentials = true;
//debugger;
return Axios.post(endPoint, reqData)
.then((response) => {
console.log(response);
+1
View File
@@ -2,6 +2,7 @@ import React from "react";
import SignUp from "../components/AuthPages/SignUp";
function SignupPage() {
return (
<>
<SignUp />
+7
View File
@@ -0,0 +1,7 @@
import React from "react";
import VerifyLink from "../components/AuthPages/VerifyLink";
export default function VerifyYouPages() {
return <VerifyLink />;
}