Compare commits

...

6 Commits

Author SHA1 Message Date
Ebube 8139fbb090 added third 2024-01-23 09:33:56 +01:00
Ebube 926837c656 added second batch 2024-01-23 09:00:30 +01:00
Ebube 14c894da6c first batch 2024-01-23 07:33:57 +01:00
CHIEFSOFT\ameye dbdc028ed4 api const 2024-01-22 11:49:49 -05:00
CHIEFSOFT\ameye c3a5a2fe34 left image 2024-01-18 11:31:35 -05:00
ameye eed2e62f62 Merge branch 'new-layout' of WrenchBoard/Users-Wrench into master 2024-01-18 14:34:53 +00:00
27 changed files with 1383 additions and 919 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

+1 -1
View File
@@ -3,7 +3,7 @@ import { Link } from "react-router-dom";
import { localImgLoad } from "../../lib"; import { localImgLoad } from "../../lib";
export default function LoginLayout({ slogan, children }) { export default function LoginLayout({ slogan, children }) {
const bgImg = localImgLoad('images/left-myft.jpg') const bgImg = localImgLoad('images/left-wrenchboard.jpg')
return ( return (
<div className={`layout-wrapper login`}> <div className={`layout-wrapper login`}>
@@ -59,7 +59,7 @@ export default function ForgotPassword() {
} }
if (email !== "" && checked) { if (email !== "" && checked) {
const reqData = { email, action:11013 }; const reqData = { email };
setResetLoading(true); setResetLoading(true);
try { try {
const res = await userApi.StartResetPassword(reqData); const res = await userApi.StartResetPassword(reqData);
@@ -59,7 +59,7 @@ export default function ForgotPassword() {
} }
if (email !== "" && checked) { if (email !== "" && checked) {
const reqData = { email, action:11013 }; const reqData = { email };
setResetLoading(true); setResetLoading(true);
try { try {
const res = await userApi.StartResetPassword(reqData); const res = await userApi.StartResetPassword(reqData);
-2
View File
@@ -98,7 +98,6 @@ export default function Login() {
password: password, password: password,
sessionid: "STARTING", sessionid: "STARTING",
login_mode: 1100, login_mode: 1100,
action: 11025,
}; };
} else if (name == "family") { } else if (name == "family") {
// Post Data Info for family Login // Post Data Info for family Login
@@ -107,7 +106,6 @@ export default function Login() {
pin: password, pin: password,
sessionid: "20067A92714", sessionid: "20067A92714",
login_mode: 1105, login_mode: 1105,
action: 11025,
}; };
} else { } else {
setLoginLoading(false); setLoginLoading(false);
+2 -4
View File
@@ -97,8 +97,7 @@ export default function Login() {
username: email, username: email,
password: password, password: password,
sessionid: "STARTING", sessionid: "STARTING",
login_mode: 1100, login_mode: 1100
action: 11025,
}; };
} else if (name == "family") { } else if (name == "family") {
// Post Data Info for family Login // Post Data Info for family Login
@@ -106,8 +105,7 @@ export default function Login() {
username: email, username: email,
pin: password, pin: password,
sessionid: "20067A92714", sessionid: "20067A92714",
login_mode: 1105, login_mode: 1105
action: 11025,
}; };
} else { } else {
setLoginLoading(false); setLoginLoading(false);
@@ -36,10 +36,7 @@ export default function VerifyLink() {
var postData = { var postData = {
username: email, username: email,
password: password, password: password,
login_mode: 100,
sessionid: "STARTER-NOTREAL",
verify_link: token, verify_link: token,
action: 11012,
}; };
const res = await userApi?.CompleteSignUp(postData); const res = await userApi?.CompleteSignUp(postData);
@@ -36,10 +36,7 @@ export default function VerifyLink() {
var postData = { var postData = {
username: email, username: email,
password: password, password: password,
login_mode: 100,
sessionid: "STARTER-NOTREAL",
verify_link: token, verify_link: token,
action: 11012,
}; };
const res = await userApi?.CompleteSignUp(postData); const res = await userApi?.CompleteSignUp(postData);
+124 -105
View File
@@ -11,7 +11,11 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
const VerifyPassword = () => { const VerifyPassword = () => {
const [password, setPassword] = useState(""); const [password, setPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState("");
const [requestStatus, setRequestStatus] = useState({loading: true, status:false, data: []}) const [requestStatus, setRequestStatus] = useState({
loading: true,
status: false,
data: [],
});
const [msgError, setMsgError] = useState(""); const [msgError, setMsgError] = useState("");
const [linkLoader, setLinkLoader] = useState(false); const [linkLoader, setLinkLoader] = useState(false);
const [linkSuccess, setLinkSuccess] = useState(null); const [linkSuccess, setLinkSuccess] = useState(null);
@@ -35,60 +39,64 @@ const VerifyPassword = () => {
}; };
const completeReset = async () => { const completeReset = async () => {
if(!password || !confirmPassword){ // CHECKS IF PASSWORD IS EMPTY if (!password || !confirmPassword) {
// CHECKS IF PASSWORD IS EMPTY
setMsgError("Please fill in fields"); setMsgError("Please fill in fields");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(password != confirmPassword){ // CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD if (password != confirmPassword) {
// CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
setMsgError("Passwords does not match"); setMsgError("Passwords does not match");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(password.length < 6){ // CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS if (password.length < 6) {
// CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
setMsgError("Password must be upto six characters"); setMsgError("Password must be upto six characters");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(!PasswordValidator(password)){ // CHECKS IF PASSWORD IS VALID if (!PasswordValidator(password)) {
setMsgError("Password must contain alphanumeric, uppercase and special character: eg: Password1@"); // CHECKS IF PASSWORD IS VALID
setMsgError(
"Password must contain alphanumeric, uppercase and special character: eg: Password1@"
);
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
try { try {
setLinkLoader(true); setLinkLoader(true);
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY", reset_link: token,
reset_link: token, newpass: password,
newpass: password, m_uid: requestStatus.data?.m_uid || "",
m_uid: requestStatus.data?.m_uid || '', reset_uid: requestStatus.data?.reset_uid || "",
reset_uid: requestStatus.data?.reset_uid || '', step: 300,
step: 300, };
action: 730, const res = await userApi?.CompleteResetPassword(reqData);
};
const res = await userApi?.CompleteResetPassword(reqData);
if (res.status == 200) { if (res.status == 200) {
const { data } = res; const { data } = res;
if (data?.internal_return >= 0) { if (data?.internal_return >= 0) {
// setTimeout(() => { // setTimeout(() => {
// navigate("/login", { replace: true }); // navigate("/login", { replace: true });
// setLinkLoader(false); // setLinkLoader(false);
// }, 2000); // }, 2000);
setLinkSuccess(true); setLinkSuccess(true);
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setMsgError("An error occurred"); setMsgError("An error occurred");
setLinkSuccess(false); setLinkSuccess(false);
} }
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
} }
} catch (error) { } catch (error) {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
@@ -100,31 +108,33 @@ const VerifyPassword = () => {
} }
}; };
const verifyResetPwd = () => { // FUNCTION TO VERIFY RESET PASSWORD LINK const verifyResetPwd = () => {
setRequestStatus({loading: true, status:false, data: []}) // FUNCTION TO VERIFY RESET PASSWORD LINK
setRequestStatus({ loading: true, status: false, data: [] });
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
reset_link: token, reset_link: token,
step: 200, step: 200,
action: 730,
}; };
userApi.CompleteResetPassword(reqData).then(res => { userApi
if(res.status != 200 || res.data.internal_return < 0){ .CompleteResetPassword(reqData)
return setRequestStatus({loading: false, status:false, data: []}) .then((res) => {
} if (res.status != 200 || res.data.internal_return < 0) {
setRequestStatus({loading: false, status:true, data: res.data}) return setRequestStatus({ loading: false, status: false, data: [] });
}).catch(error => { }
setRequestStatus({loading: false, status:false, data: []}) setRequestStatus({ loading: false, status: true, data: res.data });
}) })
} .catch((error) => {
setRequestStatus({ loading: false, status: false, data: [] });
});
};
useEffect(()=>{ useEffect(() => {
// little checker for the validity of the token // little checker for the validity of the token
if (token==null || token?.length != 64) { if (token == null || token?.length != 64) {
return setRequestStatus({loading: false, status:false, data: []}); return setRequestStatus({ loading: false, status: false, data: [] });
} }
verifyResetPwd() verifyResetPwd();
},[]) }, []);
return ( return (
<> <>
<AuthLayout slogan="Welcome to WrenchBoard"> <AuthLayout slogan="Welcome to WrenchBoard">
@@ -139,59 +149,68 @@ const VerifyPassword = () => {
</Link> </Link>
</div> </div>
<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="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">
{requestStatus.loading ? {requestStatus.loading ? (
<LoadingSpinner color='sky-blue' size='16' height='h-300px' /> <LoadingSpinner color="sky-blue" size="16" height="h-300px" />
: ) : !requestStatus.loading && requestStatus.status ? (
!requestStatus.loading && requestStatus.status ? <div className="w-full">
<div className="w-full"> {linkSuccess == null ? (
{linkSuccess == null ? <>
<> <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<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 leading-[27.3px] text-[22.75px]">
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]"> Password Reset
Password Reset </h1>
</h1> <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> Enter a new password to reset
Enter a new password to reset </span>
</span> <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> We'll send an email to confirm reset
We'll send an email to confirm reset </span>
</span> </div>
</div> <div>
<div> <p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]">
<p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]"> Must include a special, numeric, uppercase and lowercase
Must include a special, numeric, uppercase and lowercase character character
</p> </p>
</div> </div>
<SuccessfulComponent <SuccessfulComponent
password={password} password={password}
confirmPassword={confirmPassword} confirmPassword={confirmPassword}
handlePassword={handlePassword} handlePassword={handlePassword}
onSubmit={completeReset} onSubmit={completeReset}
msgErr={msgError} msgErr={msgError}
loader={linkLoader} loader={linkLoader}
showPassword={showPassword} showPassword={showPassword}
onClick={togglePasswordVisibility} onClick={togglePasswordVisibility}
navigateHandler={() => navigate("/login")} navigateHandler={() => navigate("/login")}
/>
</>
) : (
<ForgetPwdResponse
title={
linkSuccess
? "Password Reset Complete"
: "Password Reset Error"
}
message={
linkSuccess
? "Password Reset Complete. You can login now with your new credentials"
: "Password Reset Error. Please get in touch with support for further support"
}
type={linkSuccess}
/> />
</> )}
: </div>
<ForgetPwdResponse ) : (
title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'} <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
message={linkSuccess? 'Password Reset Complete. You can login now with your new credentials' : 'Password Reset Error. Please get in touch with support for further support' <ForgetPwdResponse
} title={"Forget Password"}
type={linkSuccess} message={
/> "We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us"
} }
</div> type={requestStatus.status}
: />
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7"> </div>
<ForgetPwdResponse )}
title={'Forget Password'}
message={'We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us'}
type={requestStatus.status}
/>
</div>
}
</div> </div>
</div> </div>
</AuthLayout> </AuthLayout>
+124 -105
View File
@@ -11,7 +11,11 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
const VerifyPassword = () => { const VerifyPassword = () => {
const [password, setPassword] = useState(""); const [password, setPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState("");
const [requestStatus, setRequestStatus] = useState({loading: true, status:false, data: []}) const [requestStatus, setRequestStatus] = useState({
loading: true,
status: false,
data: [],
});
const [msgError, setMsgError] = useState(""); const [msgError, setMsgError] = useState("");
const [linkLoader, setLinkLoader] = useState(false); const [linkLoader, setLinkLoader] = useState(false);
const [linkSuccess, setLinkSuccess] = useState(null); const [linkSuccess, setLinkSuccess] = useState(null);
@@ -35,60 +39,64 @@ const VerifyPassword = () => {
}; };
const completeReset = async () => { const completeReset = async () => {
if(!password || !confirmPassword){ // CHECKS IF PASSWORD IS EMPTY if (!password || !confirmPassword) {
// CHECKS IF PASSWORD IS EMPTY
setMsgError("Please fill in fields"); setMsgError("Please fill in fields");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(password != confirmPassword){ // CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD if (password != confirmPassword) {
// CHECKS IF PASSWORD EQUALS CONFIRM PASSWORD
setMsgError("Passwords does not match"); setMsgError("Passwords does not match");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(password.length < 6){ // CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS if (password.length < 6) {
// CHECKS IF PASSWORD LENGTH IS UPTO 6 CHARACTERS
setMsgError("Password must be upto six characters"); setMsgError("Password must be upto six characters");
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
if(!PasswordValidator(password)){ // CHECKS IF PASSWORD IS VALID if (!PasswordValidator(password)) {
setMsgError("Password must contain alphanumeric, uppercase and special character: eg: Password1@"); // CHECKS IF PASSWORD IS VALID
setMsgError(
"Password must contain alphanumeric, uppercase and special character: eg: Password1@"
);
return setTimeout(() => { return setTimeout(() => {
setMsgError(null); setMsgError(null);
}, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT); }, process.env.REACT_APP_RESET_START_ERROR_TIMEOUT);
} }
try { try {
setLinkLoader(true); setLinkLoader(true);
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY", reset_link: token,
reset_link: token, newpass: password,
newpass: password, m_uid: requestStatus.data?.m_uid || "",
m_uid: requestStatus.data?.m_uid || '', reset_uid: requestStatus.data?.reset_uid || "",
reset_uid: requestStatus.data?.reset_uid || '', step: 300,
step: 300, };
action: 730, const res = await userApi?.CompleteResetPassword(reqData);
};
const res = await userApi?.CompleteResetPassword(reqData);
if (res.status == 200) { if (res.status == 200) {
const { data } = res; const { data } = res;
if (data?.internal_return >= 0) { if (data?.internal_return >= 0) {
// setTimeout(() => { // setTimeout(() => {
// navigate("/login", { replace: true }); // navigate("/login", { replace: true });
// setLinkLoader(false); // setLinkLoader(false);
// }, 2000); // }, 2000);
setLinkSuccess(true); setLinkSuccess(true);
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setMsgError("An error occurred"); setMsgError("An error occurred");
setLinkSuccess(false); setLinkSuccess(false);
} }
} else { } else {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
} }
} catch (error) { } catch (error) {
setLinkLoader(false); setLinkLoader(false);
setLinkSuccess(false); setLinkSuccess(false);
@@ -100,31 +108,33 @@ const VerifyPassword = () => {
} }
}; };
const verifyResetPwd = () => { // FUNCTION TO VERIFY RESET PASSWORD LINK const verifyResetPwd = () => {
setRequestStatus({loading: true, status:false, data: []}) // FUNCTION TO VERIFY RESET PASSWORD LINK
setRequestStatus({ loading: true, status: false, data: [] });
var reqData = { var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
reset_link: token, reset_link: token,
step: 200, step: 200,
action: 730,
}; };
userApi.CompleteResetPassword(reqData).then(res => { userApi
if(res.status != 200 || res.data.internal_return < 0){ .CompleteResetPassword(reqData)
return setRequestStatus({loading: false, status:false, data: []}) .then((res) => {
} if (res.status != 200 || res.data.internal_return < 0) {
setRequestStatus({loading: false, status:true, data: res.data}) return setRequestStatus({ loading: false, status: false, data: [] });
}).catch(error => { }
setRequestStatus({loading: false, status:false, data: []}) setRequestStatus({ loading: false, status: true, data: res.data });
}) })
} .catch((error) => {
setRequestStatus({ loading: false, status: false, data: [] });
});
};
useEffect(()=>{ useEffect(() => {
// little checker for the validity of the token // little checker for the validity of the token
if (token==null || token?.length != 64) { if (token == null || token?.length != 64) {
return setRequestStatus({loading: false, status:false, data: []}); return setRequestStatus({ loading: false, status: false, data: [] });
} }
verifyResetPwd() verifyResetPwd();
},[]) }, []);
return ( return (
<> <>
<AuthLayout slogan="Welcome to WrenchBoard"> <AuthLayout slogan="Welcome to WrenchBoard">
@@ -139,59 +149,68 @@ const VerifyPassword = () => {
</Link> </Link>
</div> </div>
<div className="flex place-content-center"> <div className="flex place-content-center">
{requestStatus.loading ? {requestStatus.loading ? (
<LoadingSpinner color='sky-blue' size='16' height='h-300px' /> <LoadingSpinner color="sky-blue" size="16" height="h-300px" />
: ) : !requestStatus.loading && requestStatus.status ? (
!requestStatus.loading && requestStatus.status ? <div className="w-11/12 sm:max-w-[500px]">
<div className="w-11/12 sm:max-w-[500px]"> {linkSuccess == null ? (
{linkSuccess == null ? <>
<> <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
<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 leading-[27.3px] text-[22.75px]">
<h1 className="text-[#181c32] font-semibold dark:text-white mb-3 leading-[27.3px] text-[22.75px]"> Password Reset
Password Reset </h1>
</h1> <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> Enter a new password to reset
Enter a new password to reset </span>
</span> <span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]">
<span className="text-gray-400 font-medium text-[16.25px] leading-[24.375px]"> We'll send an email to confirm reset
We'll send an email to confirm reset </span>
</span> </div>
</div> <div>
<div> <p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]">
<p className="text-red-500 font-semibold mb-3 leading-[27.3px] text-[13px]"> Must include a special, numeric, uppercase and lowercase
Must include a special, numeric, uppercase and lowercase character character
</p> </p>
</div> </div>
<SuccessfulComponent <SuccessfulComponent
password={password} password={password}
confirmPassword={confirmPassword} confirmPassword={confirmPassword}
handlePassword={handlePassword} handlePassword={handlePassword}
onSubmit={completeReset} onSubmit={completeReset}
msgErr={msgError} msgErr={msgError}
loader={linkLoader} loader={linkLoader}
showPassword={showPassword} showPassword={showPassword}
onClick={togglePasswordVisibility} onClick={togglePasswordVisibility}
navigateHandler={() => navigate("/login")} navigateHandler={() => navigate("/login")}
/>
</>
) : (
<ForgetPwdResponse
title={
linkSuccess
? "Password Reset Complete"
: "Password Reset Error"
}
message={
linkSuccess
? "Password Reset Complete. You can login now with your new credentials"
: "Password Reset Error. Please get in touch with support for further support"
}
type={linkSuccess}
/> />
</> )}
: </div>
<ForgetPwdResponse ) : (
title={linkSuccess? 'Password Reset Complete' : 'Password Reset Error'} <div className="w-11/12 sm:max-w-[500px] title-area flex flex-col justify-center items-center relative text-center mb-7">
message={linkSuccess? 'Password Reset Complete. You can login now with your new credentials' : 'Password Reset Error. Please get in touch with support for further support' <ForgetPwdResponse
} title={"Forget Password"}
type={linkSuccess} message={
/> "We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us"
} }
</div> type={requestStatus.status}
: />
<div className="w-11/12 sm:max-w-[500px] title-area flex flex-col justify-center items-center relative text-center mb-7"> </div>
<ForgetPwdResponse )}
title={'Forget Password'}
message={'We are unable to continue to reset process. This error is usually due to expired links. Please start all over or contact us'}
type={requestStatus.status}
/>
</div>
}
</div> </div>
</div> </div>
</AuthLayout> </AuthLayout>
@@ -13,6 +13,7 @@ import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import AssignTaskPopout from "./FamilyPopout/AssignTaskPopout"; import AssignTaskPopout from "./FamilyPopout/AssignTaskPopout";
import FamilyWallet from "./Tabs/FamilyWallet"; import FamilyWallet from "./Tabs/FamilyWallet";
import { apiConst } from "../../lib/apiConst";
// Lazy Imports for components // Lazy Imports for components
const FamilyWaitlist = lazy(() => import("./Tabs/FamilyWaitlist")); const FamilyWaitlist = lazy(() => import("./Tabs/FamilyWaitlist"));
@@ -127,7 +128,7 @@ export default function FamilyManageTabs({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: 'FILE', msg_type: 'FILE',
action: 11305 action: apiConst.WRENCHBOARD_PICTURE_FAMMEMBER
} }
setUploadStatus({loading: true, status: false, message:'Loading...'}) setUploadStatus({loading: true, status: false, message:'Loading...'})
apiCall.sendFiles(reqData).then(res=>{ apiCall.sendFiles(reqData).then(res=>{
@@ -285,7 +286,7 @@ export default function FamilyManageTabs({
limit: 30, limit: 30,
offset: 0, offset: 0,
job_type: "FAMILY", job_type: "FAMILY",
action: 13005, action: apiConst.WRENCHBOARD_PICTURE_FAMMEMBER,
}; };
if (checkFamilyTask) { if (checkFamilyTask) {
@@ -1,5 +1,6 @@
import React, { useMemo, useRef, useState } from "react"; import React, { useMemo, useRef, useState } from "react";
import usersService from "../../../../services/UsersService"; import usersService from "../../../../services/UsersService";
import { apiConst } from "../../../../lib/apiConst";
const FamilyBanner = ({ imageServer }) => { const FamilyBanner = ({ imageServer }) => {
const uploadedImage = `${imageServer}${localStorage.getItem( const uploadedImage = `${imageServer}${localStorage.getItem(
@@ -65,7 +66,7 @@ const FamilyBanner = ({ imageServer }) => {
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: 11303, action: apiConst.WRENCHBOARD_PICTURE_JOB,
}; };
setUploadStatus({ setUploadStatus({
loading: true, loading: true,
@@ -55,7 +55,6 @@ export default function FamilyProfile({ familyData, className }) {
year: familyData?.year, year: familyData?.year,
month: familyData?.month, month: familyData?.month,
enable_traking: familyData?.enable_traking, enable_traking: familyData?.enable_traking,
action: 22020,
}; };
// const handleChange = ({ target: { name, value } }) => { // const handleChange = ({ target: { name, value } }) => {
@@ -1,15 +1,16 @@
import React, { useEffect, useState } from 'react' import React, { useEffect, useState } from "react";
import ModalCom from '../../../Helpers/ModalCom' import ModalCom from "../../../Helpers/ModalCom";
import InputCom from '../../../Helpers/Inputs/InputCom' import InputCom from "../../../Helpers/Inputs/InputCom";
import { Form, Formik } from "formik"; import { Form, Formik } from "formik";
import * as Yup from "yup"; import * as Yup from "yup";
import {AmountTo2DP} from '../../../Helpers/PriceFormatter' import { AmountTo2DP } from "../../../Helpers/PriceFormatter";
import usersService from '../../../../services/UsersService'; import usersService from "../../../../services/UsersService";
import LoadingSpinner from '../../../Spinners/LoadingSpinner'; import LoadingSpinner from "../../../Spinners/LoadingSpinner";
import { PriceFormatter } from '../../../Helpers/PriceFormatter'; import { PriceFormatter } from "../../../Helpers/PriceFormatter";
import { tableReload } from '../../../../store/TableReloads'; import { tableReload } from "../../../../store/TableReloads";
import { useDispatch } from 'react-redux'; import { useDispatch } from "react-redux";
import { apiConst } from "../../../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
// amount: Yup.string() // amount: Yup.string()
@@ -22,104 +23,149 @@ const validationSchema = Yup.object().shape({
// return true; // return true;
// }) // })
// .required("Amount is required"), // .required("Amount is required"),
amount: Yup.number('Please enter a number') amount: Yup.number("Please enter a number")
.min(1, "Price must be greater than 0") .min(1, "Price must be greater than 0")
.required("Amount is required"), .required("Amount is required"),
comment: Yup.string() comment: Yup.string().required("Comment is required"),
.required("Comment is required"),
}); });
function FamilyAddFundPopout({action, situation, wallet, familyData}) { function FamilyAddFundPopout({ action, situation, wallet, familyData }) {
const dispatch = useDispatch();
const dispatch = useDispatch() const apiUrl = new usersService();
const apiUrl = new usersService() const [startTransfer, setStartTransfer] = useState({
loading: true,
const [startTransfer, setStartTransfer] = useState({loading:true, data: {}}) data: {},
});
const [requestStatus, setRequestStatus] = useState({loading:false, status:false, message:''})
const [requestStatus, setRequestStatus] = useState({
loading: false,
status: false,
message: "",
});
// initial values for formik // initial values for formik
let initialValues = { let initialValues = {
amount: '', amount: "",
from : AmountTo2DP(startTransfer?.data?.origing_current_balance*0.01), from: AmountTo2DP(startTransfer?.data?.origing_current_balance * 0.01),
to: `${familyData.firstname} ${familyData.lastname}`, to: `${familyData.firstname} ${familyData.lastname}`,
comment: '' comment: "",
}; };
// FUNCTION TO PERFORM FAMILY TRANSFER // FUNCTION TO PERFORM FAMILY TRANSFER
const handleAddFund = (values) => { const handleAddFund = (values) => {
setRequestStatus({loading:true, status:false, message:''}) setRequestStatus({ loading: true, status: false, message: "" });
let senderBal = startTransfer?.data?.origing_current_balance || '' // SENDER'S ACCOUNT BALANCE let senderBal = startTransfer?.data?.origing_current_balance || ""; // SENDER'S ACCOUNT BALANCE
let senderLimit = startTransfer?.data?.origing_transfer_limit || '' // SENDER'S TRANSFER LIMIT let senderLimit = startTransfer?.data?.origing_transfer_limit || ""; // SENDER'S TRANSFER LIMIT
let reqData = { // API REQUEST DATA let reqData = {
family_uid : familyData.uid, // API REQUEST DATA
wallet_uid : wallet.wallet_uid, family_uid: familyData.uid,
origing_wallet_uid : startTransfer?.data?.origing_wallet_uid, wallet_uid: wallet.wallet_uid,
currency : startTransfer?.data?.currency, origing_wallet_uid: startTransfer?.data?.origing_wallet_uid,
amount : values.amount*100, currency: startTransfer?.data?.currency,
description : values.comment, amount: values.amount * 100,
family_transfer_mode : 100, description: values.comment,
action : 22014 family_transfer_mode: 100,
action: apiConst.WRENCHBOARD_FAMILY_TRANSFER,
};
if (!senderBal || !senderLimit) {
// RETURNS UNAUTHORIZED, IF SENDER BAL OR LIMIT IS NOT AVAILABLE
setRequestStatus({
loading: false,
status: false,
message: "Unauthorized, try again later",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
if(!senderBal || !senderLimit){ // RETURNS UNAUTHORIZED, IF SENDER BAL OR LIMIT IS NOT AVAILABLE if (values.amount > senderBal * 0.01) {
setRequestStatus({loading:false, status:false, message:'Unauthorized, try again later'}) // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS BALANCE
return setTimeout(()=>{ setRequestStatus({
setRequestStatus({loading:false, status:false, message:''}) loading: false,
}, 5000) status: false,
message: "You cannot send more than your balance",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
if(values.amount > senderBal*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS BALANCE if (values.amount > senderLimit * 0.01) {
setRequestStatus({loading:false, status:false, message:'You cannot send more than your balance'}) // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS LIMIT
return setTimeout(()=>{ setRequestStatus({
setRequestStatus({loading:false, status:false, message:''}) loading: false,
}, 5000) status: false,
message: `You cannot exceed ${senderLimit * 0.01} ${
startTransfer?.data?.origing_currency.charAt(0).toUpperCase() +
startTransfer?.data?.origing_currency.slice(1).toLowerCase()
}`,
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
} }
if(values.amount > senderLimit*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS LIMIT apiUrl
setRequestStatus({loading:false, status:false, message:`You cannot exceed ${senderLimit*0.01} ${startTransfer?.data?.origing_currency.charAt(0).toUpperCase() + startTransfer?.data?.origing_currency.slice(1).toLowerCase()}`}) .familyTransfer(reqData)
return setTimeout(()=>{ .then(({ data }) => {
setRequestStatus({loading:false, status:false, message:''}) if (
}, 5000) data.internal_return < 0 ||
} data.credit_confirm == "" ||
data.pay_confirm == ""
apiUrl.familyTransfer(reqData).then(({data}) => { ) {
if(data.internal_return < 0 || data.credit_confirm == '' || data.pay_confirm == ''){ setRequestStatus({
setRequestStatus({loading:false, status:false, message:'Transfer Failed'}) loading: false,
return setTimeout(()=>{ status: false,
setRequestStatus({loading:false, status:false, message:''}) message: "Transfer Failed",
}, 5000) });
} return setTimeout(() => {
setRequestStatus({loading:false, status:true, message:'Transfer Successful'}) setRequestStatus({ loading: false, status: false, message: "" });
setTimeout(()=>{ }, 5000);
setRequestStatus({loading:false, status:false, message:''}) }
dispatch(tableReload({ type: "WALLETTABLE" })); // UPDATES PARENT WALLET ACCOUNT setRequestStatus({
action() // TO CLOSE THE MODAL loading: false,
}, 5000) status: true,
}).catch(error => { message: "Transfer Successful",
setRequestStatus({loading:false, status:false, message:'Network Error, try again'}) });
setTimeout(()=>{ setTimeout(() => {
setRequestStatus({loading:false, status:false, message:''}) setRequestStatus({ loading: false, status: false, message: "" });
}, 5000) dispatch(tableReload({ type: "WALLETTABLE" })); // UPDATES PARENT WALLET ACCOUNT
}) action(); // TO CLOSE THE MODAL
} }, 5000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Network Error, try again",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
});
};
// LOAD FAMILY START TRANSFER // LOAD FAMILY START TRANSFER
useEffect(()=>{ useEffect(() => {
let reqData = { let reqData = {
family_uid: familyData.uid, family_uid: familyData.uid,
wallet_uid: wallet.wallet_uid, wallet_uid: wallet.wallet_uid,
action: 22013 action: apiConst.WRENCHBOARD_FAMILY_TRANSFERSTART,
} };
apiUrl.familyTransferStart(reqData).then(response => { apiUrl
setStartTransfer({loading:false, data:response?.data }) .familyTransferStart(reqData)
}).catch(err => { .then((response) => {
setStartTransfer({loading:false, data: {}}) setStartTransfer({ loading: false, data: response?.data });
}) })
},[]) .catch((err) => {
setStartTransfer({ loading: false, data: {} });
});
}, []);
return ( return (
<ModalCom action={action} situation={situation}> <ModalCom action={action} situation={situation}>
@@ -155,116 +201,125 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) {
</button> </button>
</div> </div>
<div className="logout-modal-body w-full flex flex-col items-center px-10 py-8"> <div className="logout-modal-body w-full flex flex-col items-center px-10 py-8">
{startTransfer.loading && <LoadingSpinner size='16' color='sky-blue' height={'h-64'} />} {startTransfer.loading && (
<LoadingSpinner size="16" color="sky-blue" height={"h-64"} />
{ !startTransfer.loading && )}
<Formik
initialValues={initialValues}
validationSchema={validationSchema}
onSubmit={handleAddFund}
>
{(props) => (
<Form className="w-full">
<div className="flex flex-col-reverse sm:flex-row">
<div className="fields w-full">
{/* AMOUNT */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="0"
label={`Amount (${startTransfer?.data?.currency})`}
name="amount"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${props.errors.amount && props.touched.amount ? 'border border-red-500' : ''}`}
fieldClass="px-2 text-right"
value={props.values.amount}
inputHandler={props.handleChange}
/>
</div>
{/* FROM */} {!startTransfer.loading && (
<div className="field w-full mb-[0.5rem]"> <Formik
<InputCom initialValues={initialValues}
placeholder="From" validationSchema={validationSchema}
label={`From (${startTransfer?.data?.origing_currency})`} onSubmit={handleAddFund}
name="from" >
type="text" {(props) => (
parentClass="flex items-center gap-1 w-full" <Form className="w-full">
labelClass="flex-[0.3] mb-0" <div className="flex flex-col-reverse sm:flex-row">
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`} <div className="fields w-full">
fieldClass="px-2 text-right" {/* AMOUNT */}
value={props.values.from} <div className="field w-full mb-[0.5rem]">
disable={true} <InputCom
/> placeholder="0"
</div> label={`Amount (${startTransfer?.data?.currency})`}
name="amount"
{/* TO */} type="text"
<div className="field w-full mb-[0.5rem]"> parentClass="flex items-center gap-1 w-full"
<InputCom labelClass="flex-[0.3] mb-0"
placeholder="To" inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9] ${
label="To:" props.errors.amount && props.touched.amount
name="to" ? "border border-red-500"
type="text" : ""
parentClass="flex items-center gap-1 w-full" }`}
labelClass="flex-[0.3] mb-0" fieldClass="px-2 text-right"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`} value={props.values.amount}
fieldClass="px-2 text-right" inputHandler={props.handleChange}
value={props.values.to} />
disable={true}
/>
</div>
{/* COMMENT */}
<div className="field w-full mb-[0.5rem]">
<div className="w-full">
<label
htmlFor="Job Delivery Details"
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold flex items-center gap-1"
>
Comment
{/* {props.errors.comment && props.touched.comment && <span className='text-sm text-red-500'>{' '}{props.errors.comment}</span>} */}
</label>
<textarea
// id="Job Delivery Details"
rows="2"
className={`input-field px-3 py-2 placeholder:text-base text-dark-gray dark:text-white w-full bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-[#dce4e9] rounded-[10px] border ${props.errors.comment && props.touched.comment ? 'border border-red-500' : ''}`}
style={{ resize: "none" }}
name="comment"
value={props.values.comment}
onChange={props.handleChange}
/>
</div> </div>
{/* FROM */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="From"
label={`From (${startTransfer?.data?.origing_currency})`}
name="from"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.from}
disable={true}
/>
</div>
{/* TO */}
<div className="field w-full mb-[0.5rem]">
<InputCom
placeholder="To"
label="To:"
name="to"
type="text"
parentClass="flex items-center gap-1 w-full"
labelClass="flex-[0.3] mb-0"
inputClass={`flex-[0.7] input-curve lg border border-[#dce4e9]`}
fieldClass="px-2 text-right"
value={props.values.to}
disable={true}
/>
</div>
{/* COMMENT */}
<div className="field w-full mb-[0.5rem]">
<div className="w-full">
<label
htmlFor="Job Delivery Details"
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold flex items-center gap-1"
>
Comment
{/* {props.errors.comment && props.touched.comment && <span className='text-sm text-red-500'>{' '}{props.errors.comment}</span>} */}
</label>
<textarea
// id="Job Delivery Details"
rows="2"
className={`input-field px-3 py-2 placeholder:text-base text-dark-gray dark:text-white w-full bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-[#dce4e9] rounded-[10px] border ${
props.errors.comment && props.touched.comment
? "border border-red-500"
: ""
}`}
style={{ resize: "none" }}
name="comment"
value={props.values.comment}
onChange={props.handleChange}
/>
</div>
</div>
{/* inputs ends here */}
</div> </div>
{/* inputs ends here */}
</div> </div>
</div> {/* ERROR DISPLAY AND SUBMIT BUTTON */}
{/* ERROR DISPLAY AND SUBMIT BUTTON */} <div className="content-footer w-full">
<div className="content-footer w-full"> {/* error or success display */}
{/* error or success display */} {requestStatus.message != "" &&
{requestStatus.message != "" && (!requestStatus.status ? (
(!requestStatus.status ? (
<div
className={`relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-[#912741] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
>
{requestStatus.message}
</div>
) : (
requestStatus.status && (
<div <div
className={`relative p-4 text-green-700 bg-slate-200 border-slate-800 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`} className={`relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-green-700 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`} // className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-[#912741] rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
> >
{requestStatus.message} {requestStatus.message}
</div> </div>
) ) : (
))} requestStatus.status && (
{/* End of error or success display */} <div
className={`relative p-4 text-green-700 bg-slate-200 border-slate-800 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
// className={`pb-1 absolute bottom-0 left-1/2 -translate-x-1/2 text-green-700 rounded-[0.475rem] text-md font-light leading-[19.5px] text-[13px]`}
>
{requestStatus.message}
</div>
)
))}
{/* End of error or success display */}
<div className="pt-2 w-full border-t border-light-purple dark:border-[#5356fb29] flex justify-end items-center"> <div className="pt-2 w-full border-t border-light-purple dark:border-[#5356fb29] flex justify-end items-center">
<div className="w-full flex justify-between gap-2 items-center"> <div className="w-full flex justify-between gap-2 items-center">
<button <button
type="button" type="button"
onClick={action} onClick={action}
@@ -273,29 +328,31 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) {
Cancel Cancel
</button> </button>
<> <>
{requestStatus.loading ? {requestStatus.loading ? (
<LoadingSpinner size='6' color='sky-blue' /> <LoadingSpinner size="6" color="sky-blue" />
: ) : (
<button <button
type="submit" type="submit"
className={`w-[150px] h-[48px] rounded-full text-base text-white bg-sky-500 hover:bg-sky-400 ${requestStatus.status ? 'opacity-50' : ''}`} className={`w-[150px] h-[48px] rounded-full text-base text-white bg-sky-500 hover:bg-sky-400 ${
disabled={requestStatus.status} requestStatus.status ? "opacity-50" : ""
> }`}
Send disabled={requestStatus.status}
</button> >
} Send
</button>
)}
</> </>
</div>
</div> </div>
</div> </div>
</div> </Form>
</Form> )}
)} </Formik>
</Formik> )}
}
</div> </div>
</div> </div>
</ModalCom> </ModalCom>
) );
} }
export default FamilyAddFundPopout export default FamilyAddFundPopout;
+1 -7
View File
@@ -102,13 +102,7 @@ export default function FamilyAcc() {
const memberList = useCallback(async () => { const memberList = useCallback(async () => {
setLoader(true); setLoader(true);
try { try {
const reqData = { const res = await apiCall.familyListings();
limit: 20,
offset: 0,
action: 22010,
};
const res = await apiCall.familyListings(reqData);
const { data } = res; const { data } = res;
if (data?.internal_return >= 0 && data?.status === "OK") { if (data?.internal_return >= 0 && data?.status === "OK") {
const { result_list, session_image_server } = data; const { result_list, session_image_server } = data;
+84 -58
View File
@@ -1,69 +1,93 @@
import React, { useState } from 'react' import React, { useState } from "react";
import ModalCom from '../Helpers/ModalCom' import ModalCom from "../Helpers/ModalCom";
import LoadingSpinner from '../Spinners/LoadingSpinner' import LoadingSpinner from "../Spinners/LoadingSpinner";
import InputCom from '../Helpers/Inputs/InputCom/index' import InputCom from "../Helpers/Inputs/InputCom/index";
import usersService from '../../services/UsersService' import usersService from "../../services/UsersService";
import { apiConst } from "../../lib/apiConst";
export default function AddGroup({action, situation , setUpdateList}) { export default function AddGroup({ action, situation, setUpdateList }) {
const api = new usersService();
const api = new usersService() const [name, setName] = useState("");
const [name, setName] = useState('') const handleChange = ({ target: { name, value } }) => {
setName(value);
};
const handleChange = ({target:{name, value}}) =>{ let [requestStatus, setRequestStatus] = useState({
setName(value) loading: false,
} status: false,
message: "",
}); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER
let [requestStatus, setRequestStatus] = useState({ const addGroup = () => {
setRequestStatus({ loading: true, status: false, message: "" });
if (name == "") {
setRequestStatus({
loading: false, loading: false,
status: false, status: false,
message: "", message: "Please enter a group name",
}); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER });
return setTimeout(() => {
const addGroup = () => { setRequestStatus({ loading: false, status: false, message: "" });
setRequestStatus({loading:true, status:false, message:''}) }, 3000);
if(name == ''){
setRequestStatus({loading:false, status:false, message:'Please enter a group name'})
return setTimeout(()=>{
setRequestStatus({loading:false, status:false, message:''})
},3000)
}
if(name.length < 6){
setRequestStatus({loading:false, status:false, message:'Group name must be up to six characters'})
return setTimeout(()=>{
setRequestStatus({loading:false, status:false, message:''})
},3000)
}
api.jobGroupAdd({group_name:name, action:13025}).then(response => {
let {status, data} = response
if(status != 200 || data.internal_return < 0){
setRequestStatus({loading:false, status:false, message:'Unable to add Group'})
return
}
setRequestStatus({loading:false, status:true, message:'Group Added'})
setTimeout(()=>{
setRequestStatus({loading:false, status:false, message:''})
// close modal
action()
// reload group page
setUpdateList(prev => !prev)
},3000)
}).catch(error => {
setRequestStatus({loading:false, status:false, message:'Unable to add Group, try again later'})
}).finally(()=>{
setTimeout(()=>{
setRequestStatus({loading:false, status:false, message:''})
},3000)
})
} }
if (name.length < 6) {
setRequestStatus({
loading: false,
status: false,
message: "Group name must be up to six characters",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
}
api
.jobGroupAdd({
group_name: name,
action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
})
.then((response) => {
let { status, data } = response;
if (status != 200 || data.internal_return < 0) {
setRequestStatus({
loading: false,
status: false,
message: "Unable to add Group",
});
return;
}
setRequestStatus({
loading: false,
status: true,
message: "Group Added",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
// close modal
action();
// reload group page
setUpdateList((prev) => !prev);
}, 3000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Unable to add Group, try again later",
});
})
.finally(() => {
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
});
};
return ( return (
<ModalCom <ModalCom action={action} situation={situation}>
action={action}
situation={situation}
>
<div className="logout-modal-wrapper lg:w-[500px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl"> <div className="logout-modal-wrapper lg:w-[500px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl">
<div className="logout-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b border-light-purple dark:border-[#5356fb29] "> <div className="logout-modal-header w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b border-light-purple dark:border-[#5356fb29] ">
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide"> <h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
@@ -98,7 +122,7 @@ export default function AddGroup({action, situation , setUpdateList}) {
<div className="logout-modal-body w-full flex flex-col items-center px-10 py-8"> <div className="logout-modal-body w-full flex flex-col items-center px-10 py-8">
<div className="mb-6 w-full"> <div className="mb-6 w-full">
<div className="input-item"> <div className="input-item">
<InputCom <InputCom
labelClass="tracking-wider" labelClass="tracking-wider"
fieldClass="sm:px-6 px-2" fieldClass="sm:px-6 px-2"
value={name} value={name}
@@ -108,7 +132,7 @@ export default function AddGroup({action, situation , setUpdateList}) {
type="text" type="text"
inputHandler={handleChange} inputHandler={handleChange}
// iconName="message" // iconName="message"
/> />
</div> </div>
</div> </div>
<div className="w-full flex justify-between items-center gap-4"> <div className="w-full flex justify-between items-center gap-4">
@@ -117,7 +141,9 @@ export default function AddGroup({action, situation , setUpdateList}) {
type="button" type="button"
className="text-base text-light-red tracking-wide " className="text-base text-light-red tracking-wide "
> >
<span className="border-b dark:border-[#5356fb29] border-light-red">Cancel</span> <span className="border-b dark:border-[#5356fb29] border-light-red">
Cancel
</span>
</button> </button>
{requestStatus.loading ? ( {requestStatus.loading ? (
<LoadingSpinner size="8" color="sky-blue" /> <LoadingSpinner size="8" color="sky-blue" />
@@ -153,5 +179,5 @@ export default function AddGroup({action, situation , setUpdateList}) {
</div> </div>
</div> </div>
</ModalCom> </ModalCom>
) );
} }
+276 -243
View File
@@ -1,262 +1,295 @@
import React, { useState } from 'react' import React, { useState } from "react";
import InputCom from '../../components/Helpers/Inputs/InputCom/index' import InputCom from "../../components/Helpers/Inputs/InputCom/index";
import LoadingSpinner from '../Spinners/LoadingSpinner' import LoadingSpinner from "../Spinners/LoadingSpinner";
import GroupMemberTable from './GroupMemberTable' import GroupMemberTable from "./GroupMemberTable";
import EmailValidator from '../../lib/EmailValidator' import EmailValidator from "../../lib/EmailValidator";
import usersService from '../../services/UsersService' import usersService from "../../services/UsersService";
import { apiConst } from "../../lib/apiConst";
export default function MemberList({groupList, selectedGroup, setUpdateList}) { export default function MemberList({
groupList,
selectedGroup,
setUpdateList,
}) {
const api = new usersService();
const api = new usersService() const [fields, setFields] = useState({
firstname: "",
lastname: "",
email: "",
});
const [fields, setFields] = useState({ const handleFieldsChange = ({ target: { name, value } }) => {
firstname: '', setFields((prev) => ({ ...prev, [name]: value }));
lastname: '', // let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes
email: '' // if(error >= 0){
}) // let oldErrorArr = requestState.errors
// let newErrorArr = oldErrorArr.splice(error, 1)
// setRequestState(prev => ({...prev, errors:oldErrorArr}))
// }
const handleFieldsChange = ({target:{name, value}}) => { if (value == "") {
setFields(prev => ({...prev, [name]:value})) setRequestState({
// let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes
// if(error >= 0){
// let oldErrorArr = requestState.errors
// let newErrorArr = oldErrorArr.splice(error, 1)
// setRequestState(prev => ({...prev, errors:oldErrorArr}))
// }
if(value == ''){
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: [name]
})
}else{
let error = requestState?.errors?.indexOf(name) //// checks if the input field was in error array and removes it when the input changes
if(error >= 0){
let oldErrorArr = requestState.errors
let newErrorArr = oldErrorArr.splice(error, 1)
setRequestState(prev => ({...prev, errors:oldErrorArr}))
}
}
if(name == 'email'){
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(value)) {
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: ['email']
})
}
}
}
const [requestState, setRequestState] = useState({
loading: false, loading: false,
status: false, status: false,
message: '', message: "",
data: [], data: [],
errors: ['email', 'firstname', 'lastname'] errors: [name],
}) });
} else {
const addMember = () => { let error = requestState?.errors?.indexOf(name); //// checks if the input field was in error array and removes it when the input changes
// let errors = Object.keys(fields).filter((item) => { // CHECKS FOR EMPTY STRINGS if (error >= 0) {
// if(typeof item == 'string' && fields[item] === ''){ let oldErrorArr = requestState.errors;
// return item let newErrorArr = oldErrorArr.splice(error, 1);
// } setRequestState((prev) => ({ ...prev, errors: oldErrorArr }));
// }) }
// if(errors.length){
// setRequestState({
// loading: false,
// status: false,
// message: '',
// data: [],
// errors: [...errors]
// })
// return
// }
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(fields.email)) {
setRequestState({
loading: false,
status: false,
message: 'Email is invalid',
data: [],
errors: []
})
return setTimeout(()=>{
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
},3000)
}
setRequestState({
loading: true,
status: false,
message: '',
data: [],
errors: []
})
const requestData = {
firstname:fields.firstname,lastname:fields.lastname, email:fields.email, group_id: selectedGroup?.id, action:13015
}
api.groupMemberAdd(requestData).then(response => {
let {status, data} = response
if(status != 200 || data?.internal_return < 0){
setRequestState({
loading: false,
status: false,
message: 'Unable to add member',
data: [],
errors: []
})
return
}
setRequestState({
loading: false,
status: true,
message: 'Member added',
data: [],
errors: []
})
setTimeout(()=>{
// trigger group page reload
setUpdateList(prev => !prev)
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
}, 3000)
}).catch(error=>{
setRequestState({
loading: false,
status: false,
message: 'Something went wrong, try again',
data: [],
errors: []
})
}).finally(()=>{
setTimeout(()=>{
setRequestState({
loading: false,
status: false,
message: '',
data: [],
errors: []
})
setFields({
firstname: '',
lastname: '',
email: ''
})
}, 3000)
})
} }
if (name == "email") {
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(value)) {
setRequestState({
loading: false,
status: false,
message: "",
data: [],
errors: ["email"],
});
}
}
};
const [requestState, setRequestState] = useState({
loading: false,
status: false,
message: "",
data: [],
errors: ["email", "firstname", "lastname"],
});
const addMember = () => {
// let errors = Object.keys(fields).filter((item) => { // CHECKS FOR EMPTY STRINGS
// if(typeof item == 'string' && fields[item] === ''){
// return item
// }
// })
// if(errors.length){
// setRequestState({
// loading: false,
// status: false,
// message: '',
// data: [],
// errors: [...errors]
// })
// return
// }
//checks if email is a valid email address
let regEx = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (!EmailValidator(fields.email)) {
setRequestState({
loading: false,
status: false,
message: "Email is invalid",
data: [],
errors: [],
});
return setTimeout(() => {
setRequestState({
loading: false,
status: false,
message: "",
data: [],
errors: [],
});
}, 3000);
}
setRequestState({
loading: true,
status: false,
message: "",
data: [],
errors: [],
});
const requestData = {
firstname: fields.firstname,
lastname: fields.lastname,
email: fields.email,
group_id: selectedGroup?.id,
action: apiConst.WRENCHBOARD_JOB_GROUP_MEMBER,
};
api
.groupMemberAdd(requestData)
.then((response) => {
let { status, data } = response;
if (status != 200 || data?.internal_return < 0) {
setRequestState({
loading: false,
status: false,
message: "Unable to add member",
data: [],
errors: [],
});
return;
}
setRequestState({
loading: false,
status: true,
message: "Member added",
data: [],
errors: [],
});
setTimeout(() => {
// trigger group page reload
setUpdateList((prev) => !prev);
setRequestState({
loading: false,
status: false,
message: "",
data: [],
errors: [],
});
}, 3000);
})
.catch((error) => {
setRequestState({
loading: false,
status: false,
message: "Something went wrong, try again",
data: [],
errors: [],
});
})
.finally(() => {
setTimeout(() => {
setRequestState({
loading: false,
status: false,
message: "",
data: [],
errors: [],
});
setFields({
firstname: "",
lastname: "",
email: "",
});
}, 3000);
});
};
return ( return (
<> <>
<div className='p-5 w-full min-h-[600px] overflow-y-auto'> <div className="p-5 w-full min-h-[600px] overflow-y-auto">
{groupList && groupList.length < 1 ? {groupList && groupList.length < 1 ? (
<> <>
<h1 className='my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100'>You Currently Do not have any Group, Please Add Group</h1> <h1 className="my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100">
</> You Currently Do not have any Group, Please Add Group
: </h1>
<> </>
<h1 className='mb-5 text-lg lg:text-2xl tracking-wide font-bold text-slate-900 dark:text-slate-100'>{selectedGroup?.name}</h1> ) : (
<div className='w-full flex flex-col-reverse lg:flex-col'> <>
<div className='py-3 w-full'> <h1 className="mb-5 text-lg lg:text-2xl tracking-wide font-bold text-slate-900 dark:text-slate-100">
<div className='relative grid grid-cols-1 sm:grid-cols-2 gap-2 place-content-center'> {selectedGroup?.name}
<div className="input-item"> </h1>
<InputCom <div className="w-full flex flex-col-reverse lg:flex-col">
labelClass="tracking-wider" <div className="py-3 w-full">
fieldClass="sm:px-6 px-2" <div className="relative grid grid-cols-1 sm:grid-cols-2 gap-2 place-content-center">
value={fields.firstname} <div className="input-item">
inputHandler={handleFieldsChange} <InputCom
placeholder="First Name" labelClass="tracking-wider"
// label="Firstname" fieldClass="sm:px-6 px-2"
name="firstname" value={fields.firstname}
type="text" inputHandler={handleFieldsChange}
// iconName="message" placeholder="First Name"
/> // label="Firstname"
</div> name="firstname"
<div className="input-item"> type="text"
<InputCom // iconName="message"
labelClass="tracking-wider" />
fieldClass="sm:px-6 px-2" </div>
value={fields.lastname} <div className="input-item">
inputHandler={handleFieldsChange} <InputCom
placeholder="Last Name" labelClass="tracking-wider"
// label="Lastname" fieldClass="sm:px-6 px-2"
name="lastname" value={fields.lastname}
type="text" inputHandler={handleFieldsChange}
// iconName="message" placeholder="Last Name"
/> // label="Lastname"
</div> name="lastname"
<div className="input-item w-full sm:w-[150%]"> type="text"
<InputCom // iconName="message"
labelClass="tracking-wider" />
fieldClass="sm:px-6 px-2" </div>
value={fields.email} <div className="input-item w-full sm:w-[150%]">
inputHandler={handleFieldsChange} <InputCom
placeholder="Email" labelClass="tracking-wider"
// label="Email" fieldClass="sm:px-6 px-2"
name="email" value={fields.email}
type="email" inputHandler={handleFieldsChange}
// iconName="message" placeholder="Email"
/> // label="Email"
</div> name="email"
<div className='flex justify-end items-end'> type="email"
{requestState.loading ? // iconName="message"
<LoadingSpinner size='8' color='sky-blue' /> />
: </div>
<button <div className="flex justify-end items-end">
onClick={addMember} {requestState.loading ? (
disabled={requestState.loading || requestState.status || requestState.errors.length} <LoadingSpinner size="8" color="sky-blue" />
className={`py-2 px-4 h-[42px] flex justify-center items-center text-base rounded-full text-white font-bold transition-all duration-500 ${requestState.loading || requestState.status || requestState.errors.length ? 'bg-sky-blue/50' : 'bg-sky-blue hover:bg-sky-600'} `} ) : (
> <button
Add Member onClick={addMember}
</button> disabled={
} requestState.loading ||
</div> requestState.status ||
requestState.errors.length
{!requestState.loading && requestState.message &&
<p className={`text-lg absolute -bottom-7 left-0 ${requestState.status ? 'text-green-500' : 'text-red-500'}`}>{requestState.message}</p>
} }
</div> className={`py-2 px-4 h-[42px] flex justify-center items-center text-base rounded-full text-white font-bold transition-all duration-500 ${
</div> requestState.loading ||
<div className='my-2 flex flex-col min-h-[300px]'> requestState.status ||
{selectedGroup?.data?.length < 1 ? requestState.errors.length
<h1 className='my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100'>No Member Found, Please Add</h1> ? "bg-sky-blue/50"
: : "bg-sky-blue hover:bg-sky-600"
<GroupMemberTable selectedList={selectedGroup?.data} /> } `}
} >
Add Member
</button>
)}
</div>
{!requestState.loading && requestState.message && (
<p
className={`text-lg absolute -bottom-7 left-0 ${
requestState.status ? "text-green-500" : "text-red-500"
}`}
>
{requestState.message}
</p>
)}
</div> </div>
</div>
<div className="my-2 flex flex-col min-h-[300px]">
{selectedGroup?.data?.length < 1 ? (
<h1 className="my-5 text-lg lg:text-xl tracking-wide text-slate-900 dark:text-slate-100">
No Member Found, Please Add
</h1>
) : (
<GroupMemberTable selectedList={selectedGroup?.data} />
)}
</div>
</div> </div>
</> </>
} )}
</div> </div>
</> </>
) );
} }
@@ -4,7 +4,7 @@ import { useNavigate } from "react-router-dom";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { apiConst } from "../../lib/apiConst";
function DeleteTaskModal({ details, onClose, situation, setReloadList }) { function DeleteTaskModal({ details, onClose, situation, setReloadList }) {
let dispatch = useDispatch(); let dispatch = useDispatch();
@@ -19,34 +19,50 @@ function DeleteTaskModal({ details, onClose, situation, setReloadList }) {
// FUNCTION TO DELETE TASK // FUNCTION TO DELETE TASK
const deleteTask = () => { const deleteTask = () => {
setRequestStatus({loading:true, status:false, message: ''}) setRequestStatus({ loading: true, status: false, message: "" });
let reqData = { // REQUEST PAYLOAD let reqData = {
// REQUEST PAYLOAD
suggest_uid: details.uid, suggest_uid: details.uid,
suggest_action: 555, suggest_action: apiConst.WRENCHBOARD_COMPLETE_SENDMONEY_INTERSW,
offset: 0 offset: 0,
} };
ApiCall.suggestStatus(reqData).then((response)=>{ // API CALL TO DELETE SUGGESTED TASK ApiCall.suggestStatus(reqData)
let {data} = response .then((response) => {
if(data.internal_return < 0){ // API CALL TO DELETE SUGGESTED TASK
setRequestStatus({loading:false, status:false, message: 'Unable to delete, Try again'}) let { data } = response;
return setTimeout(()=>{ if (data.internal_return < 0) {
setRequestStatus({loading:false, status:false, message: ''}) setRequestStatus({
},3000) loading: false,
} status: false,
setRequestStatus({loading:false, status:true, message: 'Family Suggest Deleted'}) message: "Unable to delete, Try again",
setReloadList(prev => !prev) // RELOADS THE FAMILY SUGGEST LIST TABLE });
setTimeout(()=>{ return setTimeout(() => {
setRequestStatus({loading:false, status:false, message: ''}) setRequestStatus({ loading: false, status: false, message: "" });
onClose() }, 3000);
},3000) }
}).catch(error => { setRequestStatus({
setRequestStatus({loading:false, status:false, message: 'Unable to delete, Try again'}) loading: false,
setTimeout(()=>{ status: true,
setRequestStatus({loading:false, status:false, message: ''}) message: "Family Suggest Deleted",
},3000) });
}) setReloadList((prev) => !prev); // RELOADS THE FAMILY SUGGEST LIST TABLE
} setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
onClose();
}, 3000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Unable to delete, Try again",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
});
};
return ( return (
<ModalCom action={onClose} situation={situation}> <ModalCom action={onClose} situation={situation}>
@@ -4,7 +4,7 @@ import { useNavigate } from "react-router-dom";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { apiConst } from "../../lib/apiConst";
function SendReminderModal({ details, onClose, situation, setReloadList }) { function SendReminderModal({ details, onClose, situation, setReloadList }) {
let dispatch = useDispatch(); let dispatch = useDispatch();
@@ -19,34 +19,50 @@ function SendReminderModal({ details, onClose, situation, setReloadList }) {
// FUNCTION TO SEND REMINDER // FUNCTION TO SEND REMINDER
const sendReminder = () => { const sendReminder = () => {
setRequestStatus({loading:true, status:false, message: ''}) setRequestStatus({ loading: true, status: false, message: "" });
let reqData = { // REQUEST PAYLOAD let reqData = {
// REQUEST PAYLOAD
suggest_uid: details.uid, suggest_uid: details.uid,
suggest_action: 222, suggest_action: apiConst.OFFER_CANCEL,
offset: 0 offset: 0,
} };
ApiCall.suggestStatus(reqData).then((response)=>{ // API CALL TO DELETE SUGGESTED TASK ApiCall.suggestStatus(reqData)
let {data} = response .then((response) => {
if(data.internal_return < 0){ // API CALL TO DELETE SUGGESTED TASK
setRequestStatus({loading:false, status:false, message: 'Unable to send reminder, Try again1111'}) let { data } = response;
return setTimeout(()=>{ if (data.internal_return < 0) {
setRequestStatus({loading:false, status:false, message: ''}) setRequestStatus({
},3000) loading: false,
} status: false,
setRequestStatus({loading:false, status:true, message: 'Reminder Sent'}) message: "Unable to send reminder, Try again1111",
setReloadList(prev => !prev) // RELOADS THE FAMILY SUGGEST LIST TABLE });
setTimeout(()=>{ return setTimeout(() => {
setRequestStatus({loading:false, status:false, message: ''}) setRequestStatus({ loading: false, status: false, message: "" });
onClose() }, 3000);
},3000) }
}).catch(error => { setRequestStatus({
setRequestStatus({loading:false, status:false, message: 'Unable to send reminder, Try againNETWORK'}) loading: false,
setTimeout(()=>{ status: true,
setRequestStatus({loading:false, status:false, message: ''}) message: "Reminder Sent",
},3000) });
}) setReloadList((prev) => !prev); // RELOADS THE FAMILY SUGGEST LIST TABLE
} setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
onClose();
}, 3000);
})
.catch((error) => {
setRequestStatus({
loading: false,
status: false,
message: "Unable to send reminder, Try againNETWORK",
});
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
}, 3000);
});
};
return ( return (
<ModalCom action={onClose} situation={situation}> <ModalCom action={onClose} situation={situation}>
@@ -82,27 +98,32 @@ function SendReminderModal({ details, onClose, situation, setReloadList }) {
</button> </button>
</div> </div>
<div className="logout-modal-body w-full flex flex-col items-center p-8"> <div className="logout-modal-body w-full flex flex-col items-center p-8">
<div className="mb-6 w-full flex gap-4 items-center">
<div className="mb-6 w-full flex gap-4 items-center">
<div className="icon max-w-[150px] min-w-[150px] max-h-[150px] min-h-[150px] flex justify-center items-center"> <div className="icon max-w-[150px] min-w-[150px] max-h-[150px] min-h-[150px] flex justify-center items-center">
<img src={require(`../../assets/images/family/${details.banner || "default.jpg"}`)} alt="" className="w-full h-full" /> <img
src={require(`../../assets/images/family/${
details.banner || "default.jpg"
}`)}
alt=""
className="w-full h-full"
/>
</div> </div>
<div className="w-full"> <div className="w-full">
<p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1"> <p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1">
{details.title} {details.title}
</p> </p>
<p className="text-sm mb-2 text-thin-light-gray font-medium"> <p className="text-sm mb-2 text-thin-light-gray font-medium">
{details.description} {details.description}
</p> </p>
{ {details.remind && (
details.remind &&
<p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1"> <p className="text-xl font-bold text-dark-gray dark:text-white mb-2 capitalize line-clamp-1">
Last Remind: {new Date(details.remind).toLocaleString().split(',')[0]} Last Remind:{" "}
{new Date(details.remind).toLocaleString().split(",")[0]}
</p> </p>
} )}
</div> </div>
</div> </div>
<div className="w-full flex justify-end"> <div className="w-full flex justify-end">
{/* <button {/* <button
@@ -11,6 +11,7 @@ import profileImage from "../../../assets/images/profile.jpg";
import { Form, Formik } from "formik"; import { Form, Formik } from "formik";
import * as Yup from "yup"; import * as Yup from "yup";
import { apiConst } from "../../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
email: Yup.string() email: Yup.string()
@@ -147,7 +148,7 @@ export default function PersonalInfoTab({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: 11300, action: apiConst.WRENCHBOARD_PICTURE_PROFILE,
}; };
setUploadStatus({ setUploadStatus({
+2 -1
View File
@@ -8,6 +8,7 @@ import ProductUploadField from "./ProductUploadField";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import usersService from "../../services/UsersService"; import usersService from "../../services/UsersService";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { apiConst } from "../../lib/apiConst";
export default function UploadProduct({uploadTypes}) { export default function UploadProduct({uploadTypes}) {
const apiCall = new usersService() const apiCall = new usersService()
@@ -152,7 +153,7 @@ export default function UploadProduct({uploadTypes}) {
title: itemName, title: itemName,
description: description, description: description,
msg_type: 'FILE', msg_type: 'FILE',
action: 11307 action: apiConst.WRENCHBOARD_RESOURCE_MYFILES
} }
if(!isValidFile(imgDetails, uploadTypes?.data)){ // FUNCTION TO CHECK IF FILE TYPE IS VALID if(!isValidFile(imgDetails, uploadTypes?.data)){ // FUNCTION TO CHECK IF FILE TYPE IS VALID
+2 -1
View File
@@ -8,6 +8,7 @@ import { tableReload } from "../../store/TableReloads";
import InputCom from "../Helpers/Inputs/InputCom"; import InputCom from "../Helpers/Inputs/InputCom";
import ModalCom from "../Helpers/ModalCom"; import ModalCom from "../Helpers/ModalCom";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
import { apiConst } from "../../lib/apiConst";
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
country: Yup.string() country: Yup.string()
@@ -162,7 +163,7 @@ const EditJobPopOut = ({
file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(), file_type: uploadedFile?.type?.split("/")[0]?.toLowerCase(),
file_data: base64Img, file_data: base64Img,
msg_type: "FILE", msg_type: "FILE",
action: 11303, action: apiConst.WRENCHBOARD_PICTURE_JOB,
}; };
setUploadStatus({ setUploadStatus({
loading: true, loading: true,
+1 -11
View File
@@ -48,13 +48,7 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
const memberList = useCallback(async () => { const memberList = useCallback(async () => {
setLoader({ member: true, jobFields: false }); setLoader({ member: true, jobFields: false });
try { try {
let reqData = { let res = await apiCall.familyListings();
limit: 20,
offset: 0,
action: 22010,
};
let res = await apiCall.familyListings(reqData);
const { data } = res; const { data } = res;
if (data?.internal_return >= 0 && data?.status == "OK") { if (data?.internal_return >= 0 && data?.status == "OK") {
let { result_list } = data; let { result_list } = data;
@@ -130,7 +124,6 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
family_uid: values?.family, family_uid: values?.family,
action: 13025,
assign_mode: 110011, assign_mode: 110011,
}; };
setLoader({ jobFields: { family: true } }); setLoader({ jobFields: { family: true } });
@@ -139,7 +132,6 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
duration: Number(values?.public), duration: Number(values?.public),
action: 13025,
assign_mode: 110022, assign_mode: 110022,
}; };
setLoader({ jobFields: { public: true } }); setLoader({ jobFields: { public: true } });
@@ -148,7 +140,6 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
reqData = { reqData = {
...jobReq, ...jobReq,
email: values?.individual, email: values?.individual,
action: 13025,
assign_mode: 110033, assign_mode: 110033,
}; };
setLoader({ jobFields: { individual: true } }); setLoader({ jobFields: { individual: true } });
@@ -158,7 +149,6 @@ const [requestStatus, setRequestStatus] = useState({message:'', status:false})
...jobReq, ...jobReq,
email: '', email: '',
group_id: values?.group, group_id: values?.group,
action: 13025,
assign_mode: 110044, assign_mode: 110044,
duration: details?.timeline_days, duration: details?.timeline_days,
// duration: 0, // duration: 0,
+1 -1
View File
@@ -180,7 +180,7 @@ html {
.primary-home { .primary-home {
/*background: linear-gradient(134.38deg, #f539f8 0%, #284f64 43.55%, #1a3544 104.51%); */ /*background: linear-gradient(134.38deg, #f539f8 0%, #284f64 43.55%, #1a3544 104.51%); */
background-image: url("./assets/images/left-myft.jpg"); background-image: url("./assets/images/left-wrenchboard.jpg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover;
} }
+269
View File
@@ -0,0 +1,269 @@
export const apiConst = {
LOGIN_MODE_GENERAL: 1100,
LOGIN_MODE_FAMILY: 1105,
ADD_JOB: 10010,
UPDATE_JOB: 10020,
PHP_API_OK: 0,
PHP_LOGIN_OK: 100,
PHP_CREATED_OK: 10,
PHP_API_BAD_PARAM: -1,
PHP_INVALID_SESSION: -9999,
SESSION_TIMEOUT_LOGOUT:6000,
MOBILE_LOGIN: 1101,
SUPPORT_PHONE:'+234 (818)-3866434',
UPLOAD_FILE_SIZE:1,
OFFER_ACCEPT:100,
OFFER_REJECT:333,
OFFER_CANCEL:222,
OFFER_EXPIRE:444,
JOB_INTEREST_ACCEPT:100,
JOB_INTEREST_REJECT:200,
JOB_INTEREST_CANCEL:300,
SMONEY_PROCC_MANUAL:100,
SMONEY_PROCC_AUTO:200,
SMONEY_PROCC_INTERSWITCH:300,
ACCOUNT_AGREE_JOBS:100,
ACCOUNT_AGREE_REFER:200,
WRENCHBOARD_SESSION_CHECK: 299,
WRENCHBOARD_USER_LOGIN: 300,
WRENCHBOARD_USER_LOGOUT: 301,
WRENCHBOARD_CREATE_ACCOUNT: 320,
CONTRACT_CANCEL_CONTRACT: 7,
CONTRACT_EXTEND_TIMELINE: 9,
CONTRACT_NOTIFY_COMPLETE: 4,
CONTRACT_REQUEST_CANCEL: 3,
CONTRACT_REQUEST_TIMELINE: 2,
CONTRACT_ACCEPT_COMPLETE: 5,
CONTRACT_REJECT_COMPLETE: 1,
WRENCHBOARD_SIGNUP_COUNTRY : 648,
WRENCHBOARD_GET_MEDIA: 650,
WRENCHBOARD_SAVE_MEDIA: 652,
WRENCH_FILE_PROFILE: 100,
WRENCH_FILE_MYFILE: 200,
WRENCH_FILE_CONTRACTS: 300,
WRENCH_FILE_FAMILY: 400,
WRENCH_FILE_FAMILYBANNER: 410,
WRENCH_FILE_JOB : 500,
WRENCHBOARD_BKO_START: 10000,
WRENCHBOARD_BKO_LOGIN: 10010,
WRENCHBOARD_BKO_CREATEUSER: 10015,
WRENCHBOARD_BKO_UPDATEUSER: 10020,
WRENCHBOARD_BKO_END: 10999,
WRENCHBOARD_ACCOUNT_START: 11000,
WRENCHBOARD_PROFILE_RESETPASS: 11005,
WRENCHBOARD_ACCOUNT_TESTEMAIL: 11001,
WRENCHBOARD_ACCOUNT_PENDING: 11010,
WRENCHBOARD_CREATE_MOBILEUSER: 11011,
WRENCHBOARD_COMPLETE_MOBILEUSER: 11012,
WRENCHBOARD_RESET_PASSWORD: 11013 ,
WRENCHBOARD_ACCOUNT_JOBLIST:11014 ,
WRENCHBOARD_VERIFY_PENDING_LINK: 11015,
WRENCHBOARD_ACCOUNT_RESETPASS: 11016,
WRENCHBOARD_ACCOUNT_SETPASSWD: 11017,
WRENCHBOARD_DELETE_PENDING_LINK: 11018,
WRENCHBOARD_RESEND_PENDING_LINK: 11019,
LOGIN_GOOGLE: 990010,
LOGIN_FACEBOOK: 990011,
LOGIN_APPLE: 990012,
WRENCHBOARD_ACCOUNT_DASHRECENT: 11206,
WRENCHBOARD_ACCOUNT_QRLOGIN: 11022,
WRENCHBOARD_ACCOUNT_CREATEACC: 11020,
WRENCHBOARD_ACCOUNT_AUXSTART: 11023,
WRENCHBOARD_ACCOUNT_AUXLOGIN: 11024,
WRENCHBOARD_ACCOUNT_LOGIN: 11025,
WRENCHBOARD_FACEBOOK_LOGIN: 11026,
WRENCHBOARD_GOOGLE_LOGIN: 11027,
WRENCHBOARD_APPLE_LOGIN: 11031,
WRENCHBOARD_START_JOBLIST: 11028,
WRENCHBOARD_ACCOUNT_DASHDATA: 11029,
WRENCHBOARD_SEND_CONTACTUS: 11030,
WRENCHBOARD_ACCOUNT_SENDREFER: 11032,
WRENCHBOARD_ACCOUNT_REFERLINK: 11033,
WRENCHBOARD_SESSION_VERIFY: 11034,
WRENCHBOARD_UPDATE_PROFILE: 11035,
WRENCHBOARD_ACCOUNT_TERMS: 11036,
WRENCHBOARD_ACCOUNT_MDESCRIPTION:11037,
WRENCHBOARD_ACCOUNT_SAVESKILL: 11038,
WRENCHBOARD_ACCOUNT_DELSKILL: 11039,
WRENCHBOARD_LOG_MEMBER: 11040,
WRENCHBOARD_DELETE_RECACC: 11041,
WRENCHBOARD_SAVE_GALLERY: 11042,
WRENCHBOARD_ACCOUNT_PENDJOB: 11043,
WRENCHBOARD_ACCT_NOTIFICATIONS: 11046,
WRENCHBOARD_ACCT_HELPITEMS: 11047,
WRECNH_CREDIT_HOOKS_FULUTTER: 11045,
WRENCHBOARD_USER_GETBANKLIST: 11050,
WRENCHBOARD_USER_SENDMONEY: 11051,
WRENCHBOARD_USER_SENDJOBINT: 11052,
WRENCHBOARD_USER_STARTCREDIT: 11053,
WRENCHBOARD_USER_ADNEWCC: 11054,
WRENCHBOARD_USER_CARDLIST: 11055,
WRENCHBOARD_USER_USESAVEDCC: 11056,
WRENCHBOARD_USER_CARDREMV: 11057,
WRENCHBOARD_USER_SETTINGS: 11058,
WRENCHBOARD_GETUSER_SETTINGS: 11059,
WRENCHBOARD_ACCOUNT_WALLETS: 11060,
WRENCHBOARD_ACCOUNT_TOPUP_RESULT: 11061,
WRENCHBOARD_ACCOUNT_PREPARE_TOPUP: 11062,
WRENCHBOARD_ACCOUNT_COMPLETE_TOPUP: 11063,
WRENCHBOARD_ACCOUNT_REFFERHX: 11064,
WRENCHBOARD_ACCOUNT_PREFERENCES: 11065,
WRENCHBOARD_ACCOUNT_MYPAGE: 11070,
WRENCHBOARD_ACCOUNT_PAGEINTRO: 11071,
WRENCHBOARD_ACCOUNT_PRICE_COMBO: 11171,
WRENCHBOARD_ACCOUNT_JOBPOST_DURATION: 11173,
WRENCHBOARD_ACCOUNT_USER_RECIPIENT: 11175,
WRENCHBOARD_ACCOUNT_ADD_RECIPIENT: 11176,
WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES: 11177,
WRENCHBOARD_ACCOUNT_COUNTRY_COMBO: 11179,
WRENCHBOARD_ACCOUNT_JOB_COUNTRY: 11181,
WRENCHBOARD_ACCOUNT_COUNTRY_BANKS: 11183,
WRENCHBOARD_ACCOUNT_HOMEBANNERS: 11200,
WRENCHBOARD_ACCOUNT_PLAYGROUND: 11201,
WRENCHBOARD_ACCOUNT_RECENTS: 11202,
WRENCHBOARD_ACCOUNT_NOTIFICATIONS: 11205,
WRENCHBOARD_PICTURE_PROFILE: 11300,
WRENCHBOARD_PICTURE_JOB: 11303,
WRENCHBOARD_PICTURE_FAMBANNER: 11304,
WRENCHBOARD_PICTURE_FAMMEMBER: 11305,
WRENCHBOARD_RESOURCE_MYFILES: 11307,
WRENCHBOARD_MYFILES_LIST: 11309,
WRENCHBOARD_USER_DELETEACC: 11990,
WRENCHBOARD_ACCOUNT_END: 11999,
WRENCHBOARD_JOB_POSTAGREE: 13002,
WRENCHBOARD_JOB_LISTJOBS: 13005,
WRENCHBOARD_JOB_OFFERS: 13006,
WRENCHBOARD_JOB_ACTIVE: 13008,
WRENCHBOARD_JOB_USERACTIVE: 13009,
WRENCHBOARD_JOB_CREATEJOB: 13010 ,
WRENCHBOARD_JOB_DELETEJOB: 13011 ,
WRENCHBOARD_JOB_GROUP_MEMBER: 13015,
WRENCHBOARD_JOB_DELETE_GROUPMEMBER:13017,
WRENCHBOARD_JOB_CREATE_GROUP: 13020,
WRENCHBOARD_JOB_DELETE_GROUP:13023,
WRENCHBOARD_JOB_OFFER_INTLIST: 13024,
WRENCHBOARD_JOB_OFFER_SYSTEM: 13025,
WRENCHBOARD_JOB_OFFER_FAMILY: 13029,
WRENCHBOARD_JOB_OFFER_INDVI:13030,
WRENCHBOARD_JOB_OFFER_GROUP:13031,
WRENCHBOARD_JOB_OFFER_PUBLIC:13032,
WRENCHBOARD_JOB_SEND_INTEREST:13033,
WRENCHBOARD_JOB_PROC_INTEREST:13034,
WRENCHBOARD_JOB_OFFER_CONCLUDE:13035,
WRENCHBOARD_JOB_SEND_QUESTION:13036,
WRENCHBOARD_JOB_MRKTINT_QUEST:13037,
WRENCHBOARD_JOB_REPLY_QUESTION:13038,
WRENCHBOARD_JOB_INT_QUESTLST: 13039,
WRENCHBOARD_JOB_WAITING_INT: 13040,
WRENCHBOARD_JOB_EXTEND_EXPIRE: 13041,
WRENCHBOARD_JOB_RESEND_MESSAGE: 13042,
WRENCHBOARD_JOB_CANCEL_OFFER: 13043,
WRENCHBOARD_JOB_JOBGROUPS: 13045,
WRENCHBOARD_JOB_JOBGROUPADD: 13046,
WRENCHBOARD_JOB_REPORT: 13047,
WRENCHBOARD_GROUP_START: 12000,
WRENCHBOARD_GROUP_CREATEGROUP: 12010,
WRENCHBOARD_GROUP_INVITEGROUP: 12015,
WRENCHBOARD_GROUP_ACCEPTGROUP: 12020,
WRENCHBOARD_CONTRACT_MESSAGE: 14010,
WRENCHBOARD_CONTRACT_MSGLIST: 14011,
WRENCHBOARD_CONTRACT_STATUS: 14015,
WRENCHBOARD_MOBILE_OFFERSLIST: 15010,
WRENCHBOARD_MOBILE_OFFERSRESP: 15012,
WRENCHBOARD_MOBILE_ACTIVEJOB: 15020,
WRENCHBOARD_MOBILE_LOADPROFILE: 15030,
WRENCHBOARD_MOBILE_UPDATEPROFILE:15031,
WRENCHBOARD_MOBILE_ACCOUNT: 15040,
WRENCHBOARD_MOBILE_JOB_MESSAGE: 15044,
WRENCHBOARD_MOBILE_MESSAGE: 15045,
WRENCHBOARD_MOBILE_PAYMENTHX: 15046,
WRENCHBOARD_MOBILE_TASKMESSAGE: 15047,
WRENCHBOARD_MOBILE_SENDTASKMESSAGE: 15048,
WRENCHBOARD_MOBILE_PURCHASEHX: 15049,
WRENCHBOARD_FAMILY_LIST: 22010,
WRENCHBOARD_FAMILY_TRANSFERHX: 22011,
WRENCHBOARD_FAMILY_WALLET: 22012,
WRENCHBOARD_FAMILY_TRANSFERSTART: 22013,
WRENCHBOARD_FAMILY_TRANSFER: 22014,
WRENCHBOARD_FAMILY_ADD: 22015,
WRENCHBOARD_FAMILY_UPDATE: 22020,
WRENCHBOARD_FAMILY_MANAGE: 22025,
WRENCHBOARD_FAMILY_SGGESTSTATUS: 22026,
WRENCHBOARD_FAMILY_SAMPLETASKS: 22027,
WRENCHBOARD_FAMILY_SGGESTTASKS: 22028,
WRENCHBOARD_FAMILY_SGGESTLIST: 22029,
WRENCHBOARD_FAMILY_SGGESTWAITING: 22030,
WRENCHBOARD_FAMILY_RELINVITE: 22031,
WRENCHBOARD_SMONEY_ADDRECIPIENT: 33010,
WRENCHBOARD_SMONEY_MEMBER: 33020,
WRENCHBOARD_SMONEY_PROCFEE: 33025,
WRENCHBOARD_SMONEY_BKOPROC: 33030 ,
WRENCHBOARD_LOGIN_SHOP: 50501,
WRENCHBOARD_LOGIN_ADMIN: 50502,
WRENCHBOARD_LOGIN_MANAGER: 50503,
WRENCHBOARD_SURVEY_DATA: 55000,
WRENCHBOARD_ADD_SURVEY: 55050,
WRENCHBOARD_LOAD_SURVEY: 55055,
WRENCHBOARD_COMPLETE_SENDMONEY_INTERSW: 555,
WRENCHBOARD_GETBILLER_INTERSW: 556,
WRENCHBOARD_BILL_PAYMENT_ADVICE_INTERSW: 557,
WRENCHBOARD_INTERSW_GETBILLER: 556,
WRENCHBOARD_INTERSW_BILL_PAYMENT_ADVICE: 557,
WRENCHBOARD_INTERSW_GETBILLERPAYMENTINTEMS: 558,
WRENCHBOARD_INTERSW_GETBILLERCATEGORIES: 559,
WRENCHBOARD_INTERSW_DO_TRANSFER: 560,
WRENCHBOARD_INTERSW_QUERY_TRANSACTION: 561,
WRENCHBOARD_ADD_MONEYRECIPIENT: 600,
WRENCHBOARD_CREATE_USER_ACCOUNT: 700,
WRENCHBOARD_USER_ACCOUNT_LOGIN: 710,
WRENCHBOARD_START_PASSWORDRESET: 720,
WRENCHBOARD_VERIFY_PASSWD_RESETLINK: 725,
WRENCHBOARD_COMPLETE_PASSWORDRESET: 730,
WRENCHBOARD_CARDS_GETCARDLIST: 40010,
WRENCHBOARD_CARDS_UPDATECARD: 40015 ,
WRENCHBOARD_COUPON_REDEEM: 85020,
WRENCHBOARD_COUPON_MEMLIST: 85025,
WRENCHBOARD_COUPON_PENDLIST: 85030,
WRENCHBOARD_ADD_MOBILE_TOPUPNUM: 900,
WRENCHBOARD_PROMO_CALL: 990,
WRENCHBOARD_STOREFACE_GET_ACCOUNT_BALANCE: 891,
WRENCHBOARD_LOG_ENTRY: 900000,
WRENCHBOARD_CREDIT_TOPUP: 900010,
WRENCHBOARD_TOPUP_ORDER: 900020,
WRENCHBOARD_TOPUP_ORDER_PURCHASE: 900030,
WRENCHBOARD_PAYPAL_IPNMSG: 900090,
WRENCHBOARD_BULKTOPUP_ORDER: 700010,
WRENCHBOARD_BULKTOPUP_ITEM: 700020,
WRENCHBOARD_BULKTOPUP_ITEMUPDATE: 700030,
WRENCHBOARD_BULKTOPUP_DELIVER: 700040,
WRENCHBOARD_BALANCE_TOPUP_ORDER: 800020,
WRENCHBOARD_BALANCE_TOPUP_PURCHASE: 800030,
WRENCHBOARD_BALANCE_TOPUP_PAYMENT: 800040,
VIRTUAL_AIRTOPUP: 70011,
PAY_MODE_BALANCE: 0,
PAY_MODE_CCARD: 1,
PAY_MODE_BONUS: 9,
APPROVED_BALANCE: 5,
DISAPROVE_BALANCE: 3
};
+2 -1
View File
@@ -1,4 +1,5 @@
import Axios from "axios"; import Axios from "axios";
import { apiConst } from "../lib/apiConst";
class SiteService { class SiteService {
constructor() { constructor() {
@@ -32,7 +33,7 @@ class SiteService {
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: 22015, action: apiConst.WRENCHBOARD_FAMILY_ADD,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familyadd", postData); return this.postAuxEnd("/familyadd", postData);
+122 -97
View File
@@ -1,4 +1,5 @@
import Axios from "axios"; import Axios from "axios";
import { apiConst } from "../lib/apiConst";
class usersService { class usersService {
constructor() { constructor() {
@@ -10,7 +11,7 @@ class usersService {
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"),
...reqData ...reqData,
}; };
return this.postAuxEnd("/mypageintro", postData); return this.postAuxEnd("/mypageintro", postData);
} }
@@ -20,7 +21,7 @@ class usersService {
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: 11070 action: apiConst.WRENCHBOARD_ACCOUNT_MYPAGE,
}; };
return this.postAuxEnd("/mypageload", postData); return this.postAuxEnd("/mypageload", postData);
} }
@@ -34,8 +35,15 @@ class usersService {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
return this.postAuxEnd("/authlogin", reqData); return this.postAuxEnd("/authlogin", reqData);
} }
CompleteSignUp(reqData) { CompleteSignUp(postData) {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
var reqData = {
login_mode: 100,
sessionid: "STARTER-NOTREAL",
action: apiConst.WRENCHBOARD_COMPLETE_MOBILEUSER,
...postData,
};
return this.postAuxEnd("/completesignuplink", reqData); return this.postAuxEnd("/completesignuplink", reqData);
} }
@@ -44,6 +52,7 @@ class usersService {
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: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/assigntask", postData); return this.postAuxEnd("/assigntask", postData);
@@ -65,13 +74,18 @@ class usersService {
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: 11202, action: apiConst.WRENCHBOARD_ACCOUNT_RECENTS,
}; };
return this.postAuxEnd("/recentactivities", postData); return this.postAuxEnd("/recentactivities", postData);
} }
logInUser(reqData) { logInUser(postData) {
localStorage.setItem("session_token", ``); localStorage.setItem("session_token", ``);
var reqData = {
action: apiConst.WRENCHBOARD_ACCOUNT_LOGIN,
...postData,
};
return this.postAuxEnd("/userlogin", reqData); return this.postAuxEnd("/userlogin", reqData);
} }
@@ -133,7 +147,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: 11309, action: apiConst.WRENCHBOARD_MYFILES_LIST,
}; };
return this.postAuxEnd("/myfiles", postData); return this.postAuxEnd("/myfiles", postData);
} }
@@ -250,7 +264,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: 11175, action: apiConst.WRENCHBOARD_ACCOUNT_USER_RECIPIENT,
}; };
return this.postAuxEnd("/recipients", postData); return this.postAuxEnd("/recipients", postData);
} }
@@ -273,7 +287,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
amount, amount,
action: 33025, action: apiConst.WRENCHBOARD_SMONEY_PROCFEE,
}; };
return this.postAuxEnd("/sendmoneyfee", postData); return this.postAuxEnd("/sendmoneyfee", postData);
} }
@@ -284,7 +298,7 @@ class usersService {
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: 11053, action: apiConst.WRENCHBOARD_USER_STARTCREDIT,
...value, ...value,
}; };
return this.postAuxEnd("/startcredit", postData); return this.postAuxEnd("/startcredit", postData);
@@ -296,7 +310,7 @@ class usersService {
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: 11056, action: apiConst.WRENCHBOARD_USER_USESAVEDCC,
...value, ...value,
}; };
return this.postAuxEnd("/payprevcard", postData); return this.postAuxEnd("/payprevcard", postData);
@@ -308,7 +322,7 @@ class usersService {
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: 11054, action: apiConst.WRENCHBOARD_USER_ADNEWCC,
...value, ...value,
}; };
return this.postAuxEnd("/paynewcard", postData); return this.postAuxEnd("/paynewcard", postData);
@@ -321,7 +335,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: 22027, action: apiConst.WRENCHBOARD_FAMILY_SAMPLETASKS,
}; };
return this.postAuxEnd("/familysampletasks", postData); return this.postAuxEnd("/familysampletasks", postData);
} }
@@ -331,7 +345,7 @@ class usersService {
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: 13010, action: apiConst.WRENCHBOARD_JOB_CREATEJOB,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familysuggesttasks", postData); return this.postAuxEnd("/familysuggesttasks", postData);
@@ -343,7 +357,7 @@ class usersService {
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: 22025, action: apiConst.WRENCHBOARD_FAMILY_MANAGE,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familymanage", postData); return this.postAuxEnd("/familymanage", postData);
@@ -358,7 +372,7 @@ class usersService {
job_mode: "ACTIVE", job_mode: "ACTIVE",
limit: 30, limit: 30,
offset: 0, offset: 0,
action: 13008, action: apiConst.WRENCHBOARD_JOB_ACTIVE,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanageractive", postData); return this.postAuxEnd("/jobmanageractive", postData);
@@ -370,7 +384,7 @@ class usersService {
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: 13010, action: apiConst.WRENCHBOARD_JOB_CREATEJOB,
limit: 30, limit: 30,
offset: 0, offset: 0,
}; };
@@ -471,7 +485,7 @@ class usersService {
uuid: localStorage.getItem("uid"), uuid: 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: 22010, action: apiConst.WRENCHBOARD_FAMILY_LIST,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/askresources", postData); return this.postAuxEnd("/askresources", postData);
@@ -509,7 +523,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: 85025, action: apiConst.WRENCHBOARD_COUPON_MEMLIST,
}; };
return this.postAuxEnd("/couponhx", postData); return this.postAuxEnd("/couponhx", postData);
} }
@@ -521,7 +535,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: 15049, action: apiConst.WRENCHBOARD_MOBILE_PURCHASEHX,
}; };
return this.postAuxEnd("/purchasehx", postData); return this.postAuxEnd("/purchasehx", postData);
} }
@@ -534,7 +548,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
offset: 1, offset: 1,
limit: 20, limit: 20,
action: 22011, action: apiConst.WRENCHBOARD_FAMILY_TRANSFERHX,
}; };
return this.postAuxEnd("/familyrewardhx", postData); return this.postAuxEnd("/familyrewardhx", postData);
} }
@@ -547,7 +561,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 1, page: 1,
limit: 20, limit: 20,
action: 15046, action: apiConst.WRENCHBOARD_MOBILE_PAYMENTHX,
}; };
return this.postAuxEnd("/paymenthx", postData); return this.postAuxEnd("/paymenthx", postData);
} }
@@ -558,7 +572,7 @@ class usersService {
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: 33020, action: apiConst.WRENCHBOARD_SMONEY_MEMBER,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/sendmoney", postData); return this.postAuxEnd("/sendmoney", postData);
@@ -572,7 +586,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
offset: 1, offset: 1,
limit: 100, limit: 100,
action: 11064, action: apiConst.WRENCHBOARD_ACCOUNT_REFFERHX,
}; };
return this.postAuxEnd("/refferhx", postData); return this.postAuxEnd("/refferhx", postData);
} }
@@ -583,7 +597,7 @@ class usersService {
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: 5031, action: apiConst.WRENCHBOARD_MOBILE_UPDATEPROFILE,
...post, ...post,
}; };
return this.postAuxEnd("/updateprofile", postData); return this.postAuxEnd("/updateprofile", postData);
@@ -628,6 +642,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
page: 0, page: 0,
limit: 100, limit: 100,
action: apiConst.WRENCHBOARD_FAMILY_UPDATE,
...reqdata, ...reqdata,
}; };
return this.postAuxEnd("/familyupdate", postData); return this.postAuxEnd("/familyupdate", postData);
@@ -663,10 +678,10 @@ class usersService {
uid: localStorage.getItem("uid"), uid: localStorage.getItem("uid"),
member_id: Number(localStorage.getItem("member_id")), member_id: Number(localStorage.getItem("member_id")),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
action: 11061, action: apiConst.WRENCHBOARD_ACCOUNT_TOPUP_RESULT,
...post, ...post,
}; };
console.log("topupresult", postData); // console.log("topupresult", postData);
return this.postAuxEnd("/topupresult", postData); return this.postAuxEnd("/topupresult", postData);
} }
@@ -676,17 +691,26 @@ class usersService {
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: 11032, action: apiConst.WRENCHBOARD_ACCOUNT_SENDREFER,
...postData, ...postData,
}; };
return this.postAuxEnd("/sendreferral", reqData); return this.postAuxEnd("/sendreferral", reqData);
} }
StartResetPassword(reqData) { StartResetPassword(postData) {
var reqData = {
action: apiConst.WRENCHBOARD_RESET_PASSWORD,
...postData,
};
return this.postAuxEnd("/startresetpasword", reqData); return this.postAuxEnd("/startresetpasword", reqData);
} }
CompleteResetPassword(reqData) { CompleteResetPassword(postData) {
var reqData = {
sessionid: "DUMMY-CANNOT_BE_EMPTY",
action: apiConst.WRENCHBOARD_COMPLETE_PASSWORDRESET,
...postData,
};
return this.postAuxEnd("/stepresetpass", reqData); return this.postAuxEnd("/stepresetpass", reqData);
} }
@@ -695,7 +719,7 @@ class usersService {
uuid: localStorage.getItem("uid"), uuid: 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: 85020, action: apiConst.WRENCHBOARD_COUPON_REDEEM,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/couponredeem", postData); return this.postAuxEnd("/couponredeem", postData);
@@ -712,7 +736,7 @@ class usersService {
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: 11183, action: apiConst.WRENCHBOARD_ACCOUNT_COUNTRY_BANKS,
...value, ...value,
}; };
return this.postAuxEnd("/countrybanks", postData); return this.postAuxEnd("/countrybanks", postData);
@@ -724,7 +748,7 @@ class usersService {
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: 11177, action: apiConst.WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES,
}; };
return this.postAuxEnd("/accounttypes", postData); return this.postAuxEnd("/accounttypes", postData);
} }
@@ -736,7 +760,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
msg_type: "JOB", msg_type: "JOB",
action: 13033, action: apiConst.WRENCHBOARD_JOB_SEND_INTEREST,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/marketinterest", postData); return this.postAuxEnd("/marketinterest", postData);
@@ -748,7 +772,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
msg_type: "JOB", msg_type: "JOB",
action: 13036, action: apiConst.WRENCHBOARD_JOB_SEND_QUESTION,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/marketmessage", postData); return this.postAuxEnd("/marketmessage", postData);
@@ -760,7 +784,7 @@ class usersService {
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: 13002, action: apiConst.WRENCHBOARD_JOB_POSTAGREE,
}; };
return this.postAuxEnd("/jobmanageragree", postData); return this.postAuxEnd("/jobmanageragree", postData);
} }
@@ -771,7 +795,7 @@ class usersService {
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: 13010, action: apiConst.WRENCHBOARD_JOB_CREATEJOB,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagercreatejob", postData); return this.postAuxEnd("/jobmanagercreatejob", postData);
@@ -782,7 +806,7 @@ class usersService {
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: 13010, action: apiConst.WRENCHBOARD_JOB_CREATEJOB,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagerupdatejob", postData); return this.postAuxEnd("/jobmanagerupdatejob", postData);
@@ -794,7 +818,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
extend_days: 7, extend_days: 7,
action: 13041, action: apiConst.WRENCHBOARD_JOB_EXTEND_EXPIRE,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobextend", postData); return this.postAuxEnd("/pendingjobextend", postData);
@@ -806,7 +830,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
mode: 200, mode: 200,
action: 13042, action: apiConst.WRENCHBOARD_JOB_RESEND_MESSAGE,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobsendtome", postData); return this.postAuxEnd("/pendingjobsendtome", postData);
@@ -817,7 +841,7 @@ class usersService {
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: 13043, action: apiConst.WRENCHBOARD_JOB_CANCEL_OFFER,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/pendingjobcancel", postData); return this.postAuxEnd("/pendingjobcancel", postData);
@@ -830,7 +854,7 @@ class usersService {
member_id: localStorage.getItem("member_id"), member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
action: 14011, action: apiConst.WRENCHBOARD_CONTRACT_MSGLIST,
offset: 0, offset: 0,
...reqData, ...reqData,
}; };
@@ -843,7 +867,7 @@ class usersService {
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: 14010, action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/sendtaskmessage", postData); return this.postAuxEnd("/sendtaskmessage", postData);
@@ -855,10 +879,10 @@ class usersService {
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: 14010, action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE,
...reqData, ...reqData,
}; };
const formData = new FormData(); const formData = new FormData();
for (let data in postData) { for (let data in postData) {
formData.append(data, postData[data]); formData.append(data, postData[data]);
@@ -873,7 +897,7 @@ class usersService {
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: 13011, action: apiConst.WRENCHBOARD_JOB_DELETEJOB,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobmanagerdeletejob", postData); return this.postAuxEnd("/jobmanagerdeletejob", postData);
@@ -882,7 +906,7 @@ class usersService {
verifyEmail(code) { verifyEmail(code) {
const reqData = { const reqData = {
verify_link: code, verify_link: code,
action: 11015, action: apiConst.WRENCHBOARD_VERIFY_PENDING_LINK,
}; };
return this.postAuxEnd("/verifysignuplink", reqData); return this.postAuxEnd("/verifysignuplink", reqData);
} }
@@ -893,7 +917,7 @@ class usersService {
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: 15012, action: apiConst.WRENCHBOARD_MOBILE_OFFERSRESP,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offersresponse", postData); return this.postAuxEnd("/offersresponse", postData);
@@ -905,7 +929,7 @@ class usersService {
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: 13024, action: apiConst.WRENCHBOARD_JOB_OFFER_INTLIST,
limit: 30, limit: 30,
offset: 0, offset: 0,
}; };
@@ -918,7 +942,7 @@ class usersService {
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: 13034, action: apiConst.WRENCHBOARD_JOB_OFFER_INTLIST,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offersinterestproc", postData); return this.postAuxEnd("/offersinterestproc", postData);
@@ -930,7 +954,7 @@ class usersService {
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: 14015, action: apiConst.WRENCHBOARD_CONTRACT_STATUS,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/activetaskstatus", postData); return this.postAuxEnd("/activetaskstatus", postData);
@@ -942,7 +966,7 @@ class usersService {
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: 14015, action: apiConst.WRENCHBOARD_CONTRACT_STATUS,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/activejobstatus", postData); return this.postAuxEnd("/activejobstatus", postData);
@@ -963,7 +987,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: 11205, action: apiConst.WRENCHBOARD_ACCOUNT_NOTIFICATIONS,
}; };
return this.postAuxEnd("/mynotifications", postData); return this.postAuxEnd("/mynotifications", postData);
} }
@@ -974,7 +998,7 @@ class usersService {
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: 11055, action: apiConst.WRENCHBOARD_USER_CARDLIST,
}; };
return this.postAuxEnd("/paylistcard", postData); return this.postAuxEnd("/paylistcard", postData);
} }
@@ -985,7 +1009,7 @@ class usersService {
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: 13037, action: apiConst.WRENCHBOARD_JOB_MRKTINT_QUEST,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offerinterestmsg", postData); return this.postAuxEnd("/offerinterestmsg", postData);
@@ -997,7 +1021,7 @@ class usersService {
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: 13037, action: apiConst.WRENCHBOARD_JOB_MRKTINT_QUEST,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/offerinterestlistmsg", postData); return this.postAuxEnd("/offerinterestlistmsg", postData);
@@ -1019,7 +1043,9 @@ class usersService {
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"),
...reqData, limit: 20,
offset: 0,
action: apiConst.WRENCHBOARD_FAMILY_LIST,
}; };
return this.postAuxEnd("/familylist", postData); return this.postAuxEnd("/familylist", postData);
} }
@@ -1030,7 +1056,7 @@ class usersService {
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: 13025, action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/assigntask", postData); return this.postAuxEnd("/assigntask", postData);
@@ -1044,7 +1070,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: 13010, action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
}; };
return this.postAuxEnd("/familysuggestlist", postData); return this.postAuxEnd("/familysuggestlist", postData);
} }
@@ -1055,7 +1081,7 @@ class usersService {
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: 11005, action: apiConst.WRENCHBOARD_PROFILE_RESETPASS,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/profilepasschange", postData); return this.postAuxEnd("/profilepasschange", postData);
@@ -1067,7 +1093,7 @@ class usersService {
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: 11059, action: apiConst.WRENCHBOARD_GETUSER_SETTINGS,
}; };
return this.postAuxEnd("/getaccsettings", postData); return this.postAuxEnd("/getaccsettings", postData);
} }
@@ -1078,7 +1104,7 @@ class usersService {
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: 11058, action: apiConst.WRENCHBOARD_USER_SETTINGS,
...reqdata, ...reqdata,
}; };
return this.postAuxEnd("/setaccsettings", postData); return this.postAuxEnd("/setaccsettings", postData);
@@ -1090,7 +1116,7 @@ class usersService {
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: 11057, action: apiConst.WRENCHBOARD_USER_CARDREMV,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/payremcard", postData); return this.postAuxEnd("/payremcard", postData);
@@ -1103,7 +1129,7 @@ class usersService {
sessionid: localStorage.getItem("session_token"), sessionid: localStorage.getItem("session_token"),
limit: 30, limit: 30,
offset: 0, offset: 0,
action: 11202, action: apiConst.WRENCHBOARD_ACCOUNT_RECENTS,
}; };
return this.postAuxEnd("/recentactivities", postData); return this.postAuxEnd("/recentactivities", postData);
} }
@@ -1125,7 +1151,7 @@ class usersService {
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: 22026, action: apiConst.WRENCHBOARD_FAMILY_SGGESTSTATUS,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/suggeststatus", postData); return this.postAuxEnd("/suggeststatus", postData);
@@ -1137,7 +1163,7 @@ class usersService {
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: 22012, action: apiConst.WRENCHBOARD_FAMILY_WALLET,
...reqData, ...reqData,
}; };
return this.postAuxEnd("/familywallet", postData); return this.postAuxEnd("/familywallet", postData);
@@ -1165,40 +1191,39 @@ class usersService {
return this.postAuxEnd("/familytransfer", postData); return this.postAuxEnd("/familytransfer", postData);
} }
// FUNCTION GET JOB GROUP LIST
jobGroupList(reqData) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_JOB_JOBGROUPS,
...reqData,
};
return this.postAuxEnd("/jobgrouplist", postData);
}
// FUNCTION GET JOB GROUP LIST // FUNCTION TO ADD JOB GROUP
jobGroupList(reqData) { jobGroupAdd(reqData) {
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: 13045, ...reqData,
...reqData, };
}; return this.postAuxEnd("/jobgroupadd", postData);
return this.postAuxEnd("/jobgrouplist", postData); }
}
// FUNCTION TO ADD JOB GROUP // FUNCTION TO ADD JOB GROUP MEMBER
jobGroupAdd(reqData) { groupMemberAdd(reqData) {
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"),
...reqData, ...reqData,
}; };
return this.postAuxEnd("/jobgroupadd", postData); return this.postAuxEnd("/groupmemberadd", postData);
} }
// FUNCTION TO ADD JOB GROUP MEMBER
groupMemberAdd(reqData) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
...reqData,
};
return this.postAuxEnd("/groupmemberadd", postData);
}
/* /*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)