Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b96e8a3ed5 | |||
| f3226a6cfc | |||
| ff4c503100 | |||
| f543a2d893 | |||
| 41badd52be | |||
| eeddd4e0a5 | |||
| ee4d136834 | |||
| 283efa42b3 | |||
| 5cbab4933c | |||
| 4de2181c18 | |||
| c8f0161a29 | |||
| 60222b6d88 | |||
| 9ea3963239 | |||
| a87592623b | |||
| bfcf53f763 | |||
| df4489c6f2 | |||
| 37185812b4 | |||
| eb3e78244d | |||
| b302d7ba57 | |||
| d6c16169d9 | |||
| 57129da0bd | |||
| c8331c51cf | |||
| 3b7618702b |
@@ -46,7 +46,7 @@ REACT_APP_GOOGLE_REDIRECT_URL=http://localhost:9082/login/auth/
|
|||||||
REACT_APP_FACEBOOK_CLIENT_ID2=390204307987009
|
REACT_APP_FACEBOOK_CLIENT_ID2=390204307987009
|
||||||
REACT_APP_FACEBOOK_CLIENT_SECRET2=19f778e312f2ab96d147bacb612910c2
|
REACT_APP_FACEBOOK_CLIENT_SECRET2=19f778e312f2ab96d147bacb612910c2
|
||||||
|
|
||||||
#developenet Account
|
#development Account Social
|
||||||
REACT_APP_FACEBOOK_CLIENT_ID=677857427521030
|
REACT_APP_FACEBOOK_CLIENT_ID=677857427521030
|
||||||
REACT_APP_FACEBOOK_CLIENT_SECRET=4801375f22072d8a75f64483fdd89829
|
REACT_APP_FACEBOOK_CLIENT_SECRET=4801375f22072d8a75f64483fdd89829
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
@@ -1,6 +1,6 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { Link, useNavigate } from "react-router-dom";
|
import { Link, useNavigate } from "react-router-dom";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import InputCom from "../../Helpers/Inputs/InputCom";
|
import InputCom from "../../Helpers/Inputs/InputCom";
|
||||||
import AuthLayout from "../AuthLayout";
|
import AuthLayout from "../AuthLayout";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import linkedInLogo from "../../../assets/images/Linkedin.png";
|
|||||||
import appleLogo from "../../../assets/images/apple-black.svg";
|
import appleLogo from "../../../assets/images/apple-black.svg";
|
||||||
import facebookLogo from "../../../assets/images/facebook-4.svg";
|
import facebookLogo from "../../../assets/images/facebook-4.svg";
|
||||||
import googleLogo from "../../../assets/images/google-logo.svg";
|
import googleLogo from "../../../assets/images/google-logo.svg";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import InputCom from "../../Helpers/Inputs/InputCom";
|
import InputCom from "../../Helpers/Inputs/InputCom";
|
||||||
import AuthLayout from "../AuthLayout";
|
import AuthLayout from "../AuthLayout";
|
||||||
@@ -432,10 +432,12 @@ export default function Login() {
|
|||||||
}
|
}
|
||||||
{/* END of login component */}
|
{/* END of login component */}
|
||||||
|
|
||||||
|
{loginType == "full" &&
|
||||||
<div className="pt-5 text-[#181c32] text-center font-semibold text-[13.975px] leading-[20.9625px]">
|
<div className="pt-5 text-[#181c32] text-center font-semibold text-[13.975px] leading-[20.9625px]">
|
||||||
This site is protected by hCaptcha and the our Privacy Policy
|
This site is protected by hCaptcha and the our Privacy Policy
|
||||||
and Terms of Service apply.
|
and Terms of Service apply.
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import React, { useCallback, useEffect, useState } from "react";
|
import React, { useCallback, useEffect, useState } from "react";
|
||||||
import { Link, useNavigate } from "react-router-dom";
|
import { Link, useNavigate } from "react-router-dom";
|
||||||
import facebookLogo from "../../../assets/images/facebook-4.svg";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import InputCom from "../../Helpers/Inputs/InputCom";
|
import InputCom from "../../Helpers/Inputs/InputCom";
|
||||||
import AuthLayout from "../AuthLayout";
|
import AuthLayout from "../AuthLayout";
|
||||||
@@ -69,13 +68,17 @@ export default function SignUp() {
|
|||||||
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
|
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
|
||||||
if (regEx.test(email) == false) {
|
if (regEx.test(email) == false) {
|
||||||
setMsgError("Invalid Email");
|
setMsgError("Invalid Email");
|
||||||
return setTimeout(()=>{setMsgError("");},3000)
|
return setTimeout(() => {
|
||||||
|
setMsgError("");
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
//checks if terms and condition is checked
|
//checks if terms and condition is checked
|
||||||
if (!checked) {
|
if (!checked) {
|
||||||
setMsgError("Terms and condition required");
|
setMsgError("Terms and condition required");
|
||||||
return setTimeout(()=>{setMsgError("");},3000)
|
return setTimeout(() => {
|
||||||
|
setMsgError("");
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
setSignUpLoading(true);
|
setSignUpLoading(true);
|
||||||
@@ -95,7 +98,9 @@ export default function SignUp() {
|
|||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const { data } = res;
|
const { data } = res;
|
||||||
if (data && data.acc === "DULPICATE") {
|
if (data && data.acc === "DULPICATE") {
|
||||||
setMsgError("Unable to use this username. Please try another username.");
|
setMsgError(
|
||||||
|
"Unable to use this username. Please try another username."
|
||||||
|
);
|
||||||
setSignUpLoading(false);
|
setSignUpLoading(false);
|
||||||
}
|
}
|
||||||
if (data && data.status === "1") {
|
if (data && data.status === "1") {
|
||||||
@@ -211,9 +216,7 @@ export default function SignUp() {
|
|||||||
name="password"
|
name="password"
|
||||||
type={showPassword ? "text" : "password"}
|
type={showPassword ? "text" : "password"}
|
||||||
onClick={togglePasswordVisibility}
|
onClick={togglePasswordVisibility}
|
||||||
passIcon={
|
passIcon={showPassword ? "show-password" : "hide-password"}
|
||||||
showPassword ? "show-password" : "hide-password"
|
|
||||||
}
|
|
||||||
value={formData.password}
|
value={formData.password}
|
||||||
inputHandler={handleInputChange}
|
inputHandler={handleInputChange}
|
||||||
/>
|
/>
|
||||||
@@ -223,7 +226,48 @@ export default function SignUp() {
|
|||||||
{msgError}
|
{msgError}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="forgot-password-area flex justify-between items-center mb-6">
|
<div className="forgot-password-area flex justify-between items-center mb-6">
|
||||||
|
<div className="remember-checkbox flex items-center space-x-2.5 group cursor-pointer">
|
||||||
|
<button
|
||||||
|
onClick={rememberMe}
|
||||||
|
type="button"
|
||||||
|
className={`w-6 h-6 border-[#4687ba] text-white flex justify-center items-center border rounded-[.45em] group-checked:text-white transition-all duration-200 group-checked:cursor-default ${
|
||||||
|
checked && "text-white bg-[#4687ba]"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{checked && (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
className="h-5 w-5"
|
||||||
|
viewBox="0 0 20 20"
|
||||||
|
fill="currentColor"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"
|
||||||
|
clipRule="evenodd"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
)}
|
||||||
|
</button>
|
||||||
|
<span
|
||||||
|
onClick={rememberMe}
|
||||||
|
className="cursor-default text-dark-gray dark:text-white text-[15px] group-checked:text-white transition-all duration-200 group-checked:cursor-default"
|
||||||
|
>
|
||||||
|
I agree with all
|
||||||
|
<Link
|
||||||
|
href="#"
|
||||||
|
className="text-base text-[#4687ba] hover:text-[#009ef7] mx-1 inline-block"
|
||||||
|
>
|
||||||
|
terms and condition
|
||||||
|
</Link>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Forgot Password */}
|
||||||
|
{/* <div className="forgot-password-area flex justify-between items-center mb-6">
|
||||||
<div className="remember-checkbox flex items-center space-x-2.5">
|
<div className="remember-checkbox flex items-center space-x-2.5">
|
||||||
<button
|
<button
|
||||||
onClick={rememberMe}
|
onClick={rememberMe}
|
||||||
@@ -258,7 +302,7 @@ export default function SignUp() {
|
|||||||
</Link>
|
</Link>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
<div className="signin-area mb-1">
|
<div className="signin-area mb-1">
|
||||||
<div className="flex justify-center">
|
<div className="flex justify-center">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useCallback, useEffect, useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
import { Link, useLocation, useNavigate } from "react-router-dom";
|
import { Link, useLocation, useNavigate } from "react-router-dom";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
import debounce from "../../../hooks/debounce";
|
import debounce from "../../../hooks/debounce";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import InputCom from "../../Helpers/Inputs/InputCom";
|
import InputCom from "../../Helpers/Inputs/InputCom";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Link, useLocation, useNavigate } from "react-router-dom";
|
import { Link, useLocation, useNavigate } from "react-router-dom";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import InputCom from "../../Helpers/Inputs/InputCom";
|
import InputCom from "../../Helpers/Inputs/InputCom";
|
||||||
import AuthLayout from "../AuthLayout";
|
import AuthLayout from "../AuthLayout";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useNavigate, Link } from "react-router-dom";
|
import { useNavigate, Link } from "react-router-dom";
|
||||||
import AuthLayout from "../AuthLayout";
|
import AuthLayout from "../AuthLayout";
|
||||||
import WrenchBoard from "../../../assets/images/wrenchboard.png";
|
import WrenchBoard from "../../../assets/images/wrenchboard-logo-text.png";
|
||||||
|
|
||||||
export default function VerifyYou() {
|
export default function VerifyYou() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
|
|||||||
return (
|
return (
|
||||||
<tr
|
<tr
|
||||||
key={index}
|
key={index}
|
||||||
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
|
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
|
||||||
>
|
>
|
||||||
<td className="py-9">
|
<td className="py-9">
|
||||||
<div className="sm:flex sm:space-x-2 sm:justify-between sm:items-center job-items">
|
<div className="sm:flex sm:space-x-2 sm:justify-between sm:items-center job-items">
|
||||||
@@ -175,7 +175,7 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
|
|||||||
}}
|
}}
|
||||||
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
|
||||||
>
|
>
|
||||||
Manage
|
Assign
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -204,8 +204,8 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
|
|||||||
{MyJobList.loading ? (
|
{MyJobList.loading ? (
|
||||||
<LoadingSpinner size="16" color="sky-blue" />
|
<LoadingSpinner size="16" color="sky-blue" />
|
||||||
) : (
|
) : (
|
||||||
<div className="relative w-full overflow-x-auto sm:rounded-lg flex flex-col justify-between h-full">
|
<div className="relative w-full overflow-x-auto sm:rounded-lg flex flex-col justify-between min-h-[520px]">
|
||||||
<table className="table-auto min-w-full text-sm text-left text-gray-500 dark:text-gray-400 min-h-[500px]">
|
<table className="table-auto min-w-full text-sm text-left text-gray-500 dark:text-gray-400">
|
||||||
<tbody>
|
<tbody>
|
||||||
<>
|
<>
|
||||||
{MyJobList &&
|
{MyJobList &&
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ function AddFundPop({
|
|||||||
</h1>
|
</h1>
|
||||||
<div className="field w-full max-w-[250px]">
|
<div className="field w-full max-w-[250px]">
|
||||||
<InputCom
|
<InputCom
|
||||||
fieldClass="px-6"
|
fieldClass="px-6 text-right"
|
||||||
type="text"
|
type="text"
|
||||||
name="amount"
|
name="amount"
|
||||||
placeholder="0"
|
placeholder="0"
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ function ConfirmAddFund({
|
|||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
public_key: process.env.REACT_APP_FLUTTERWAVE_APIKEY,
|
public_key: process.env.REACT_APP_FLUTTERWAVE_APIKEY,
|
||||||
tx_ref: Date.now(),
|
tx_ref: __confirmData?.credit_reference,
|
||||||
currency: "NGN",
|
currency: "NGN",
|
||||||
amount: Number(__confirmData.amount),
|
amount: Number(__confirmData.amount),
|
||||||
payment_options: "card,mobilemoney,ussd",
|
payment_options: "card,mobilemoney,ussd",
|
||||||
@@ -128,23 +128,24 @@ function ConfirmAddFund({
|
|||||||
logo: "https://www.wrenchboard.com/assets/images/wrench-500-500-icon.png",
|
logo: "https://www.wrenchboard.com/assets/images/wrench-500-500-icon.png",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
//debugger;
|
||||||
const fwConfig = {
|
const fwConfig = {
|
||||||
...config,
|
...config,
|
||||||
text: "Proceed",
|
text: "Proceed",
|
||||||
callback: (response) => {
|
callback: (response) => {
|
||||||
onSuccessPayment();
|
onSuccessPayment();
|
||||||
closePaymentModal();
|
setTimeout(() => {
|
||||||
|
closePaymentModal();
|
||||||
|
}, 2000);
|
||||||
},
|
},
|
||||||
onClose: () => {},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const onSuccessPayment = () => {
|
const onSuccessPayment = () => {
|
||||||
setRequestStatus({ message: "", loading: true, status: false });
|
setRequestStatus({ message: "", loading: true, status: false });
|
||||||
const reqData = { amount: Number(__confirmData?.amount), currency: "NGN" };
|
const reqData = { tx_ref: __confirmData?.credit_reference };
|
||||||
console.log("**** onSuccessPayment **** THIS WAS REACHED");
|
console.log("**** onSuccessPayment **** THIS WAS REACHED");
|
||||||
apiURL
|
apiURL
|
||||||
.startTopUp(reqData)
|
.resultTopUp(reqData)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.data.internal_return < 0) {
|
if (res.data.internal_return < 0) {
|
||||||
setRequestStatus({
|
setRequestStatus({
|
||||||
@@ -159,8 +160,15 @@ function ConfirmAddFund({
|
|||||||
loading: false,
|
loading: false,
|
||||||
status: true,
|
status: true,
|
||||||
});
|
});
|
||||||
toast.success("Account Topup was successful");
|
|
||||||
onClose()
|
setConfirmCredit((prev) => ({
|
||||||
|
...prev,
|
||||||
|
show: {
|
||||||
|
awaitConfirm: { loader: false, state: false },
|
||||||
|
acceptConfirm: { loader: false, state: true },
|
||||||
|
},
|
||||||
|
data: res,
|
||||||
|
}));
|
||||||
dispatch(tableReload({ type: "WALLETTABLE" }));
|
dispatch(tableReload({ type: "WALLETTABLE" }));
|
||||||
navigate("/my-wallet", { replace: true });
|
navigate("/my-wallet", { replace: true });
|
||||||
// setTimeout(() => {
|
// setTimeout(() => {
|
||||||
@@ -267,7 +275,7 @@ function ConfirmAddFund({
|
|||||||
}));
|
}));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setConfirmCredit((prev) => ({
|
setConfirmCredit((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
@@ -300,7 +308,7 @@ function ConfirmAddFund({
|
|||||||
},
|
},
|
||||||
data: {},
|
data: {},
|
||||||
}));
|
}));
|
||||||
}
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="content-wrapper w-full h-[32rem]">
|
<div className="content-wrapper w-full h-[32rem]">
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import WalletHeader from "../MyWallet/WalletHeader";
|
|||||||
|
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
import Flag from "../../assets/images/united-states.svg";
|
import Flag from "../../assets/images/united-states.svg";
|
||||||
import siteLogo from "../../assets/images/wrenchboard.png";
|
import siteLogo from "../../assets/images/wrenchboard-logo-text.png";
|
||||||
import formattedDate from "../../lib/fomattedDate";
|
import formattedDate from "../../lib/fomattedDate";
|
||||||
import { updateNotifications } from "../../store/notifications";
|
import { updateNotifications } from "../../store/notifications";
|
||||||
import TimeDifference from "../Helpers/TimeDifference";
|
import TimeDifference from "../Helpers/TimeDifference";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { NavLink } from "react-router-dom";
|
|||||||
import {
|
import {
|
||||||
default as logo,
|
default as logo,
|
||||||
default as logo3,
|
default as logo3,
|
||||||
} from "../../assets/images/wrenchboard.png"; //logo-2.svg";
|
} from "../../assets/images/wrenchboard-logo-text.png"; //logo-2.svg";
|
||||||
import DarkModeContext from "../Contexts/DarkModeContext";
|
import DarkModeContext from "../Contexts/DarkModeContext";
|
||||||
import Icons from "../Helpers/Icons";
|
import Icons from "../Helpers/Icons";
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { NavLink } from "react-router-dom";
|
|||||||
import {
|
import {
|
||||||
default as logo,
|
default as logo,
|
||||||
default as logo3,
|
default as logo3,
|
||||||
} from "../../assets/images/wrenchboard.png";
|
} from "../../assets/images/wrenchboard-logo-text.png";
|
||||||
import DarkModeContext from "../Contexts/DarkModeContext";
|
import DarkModeContext from "../Contexts/DarkModeContext";
|
||||||
import Icons from "../Helpers/Icons";
|
import Icons from "../Helpers/Icons";
|
||||||
|
|
||||||
|
|||||||
@@ -577,17 +577,31 @@ class usersService {
|
|||||||
return this.postAuxEnd("/familymanage", postData);
|
return this.postAuxEnd("/familymanage", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
//END POINT CALL FOR ACCOUNT TOP
|
// END POINT CALL FOR ACCOUNT TOP
|
||||||
startTopUp(post) {
|
startTopUp(post) {
|
||||||
|
alert("WHY ARE WE CALLING THIS ?");
|
||||||
|
// var postData = {
|
||||||
|
// uid: localStorage.getItem("uid"),
|
||||||
|
// member_id: localStorage.getItem("member_id"),
|
||||||
|
// sessionid: localStorage.getItem("session_token"),
|
||||||
|
// action: 11062,
|
||||||
|
// ...post,
|
||||||
|
// };
|
||||||
|
// console.log("starttopup",postData);
|
||||||
|
// return this.postAuxEnd("/starttopup", postData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
resultTopUp(post) {
|
||||||
var postData = {
|
var postData = {
|
||||||
uid: localStorage.getItem("uid"),
|
uid: localStorage.getItem("uid"),
|
||||||
member_id: localStorage.getItem("member_id"),
|
member_id: localStorage.getItem("member_id"),
|
||||||
sessionid: localStorage.getItem("session_token"),
|
sessionid: localStorage.getItem("session_token"),
|
||||||
action: 11062,
|
action: 11061,
|
||||||
...post,
|
...post,
|
||||||
};
|
};
|
||||||
console.log("starttopup",postData);
|
console.log("topupresult",postData);
|
||||||
return this.postAuxEnd("/starttopup", postData);
|
return this.postAuxEnd("/topupresult", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
//END POINT CALL FOR SENDING REFERRAL MESSAGE
|
//END POINT CALL FOR SENDING REFERRAL MESSAGE
|
||||||
|
|||||||
Reference in New Issue
Block a user