diff --git a/apps/OpenSign/src/components/pdf/EmailComponent.js b/apps/OpenSign/src/components/pdf/EmailComponent.js index 879ff5fa2..b1e905719 100644 --- a/apps/OpenSign/src/components/pdf/EmailComponent.js +++ b/apps/OpenSign/src/components/pdf/EmailComponent.js @@ -16,7 +16,8 @@ function EmailComponent({ pdfName, sender, setIsAlert, - extUserId + extUserId, + activeMailAdapter }) { const [emailList, setEmailList] = useState([]); const [emailValue, setEmailValue] = useState(); @@ -24,6 +25,7 @@ function EmailComponent({ //function for send email const sendEmail = async () => { setIsLoading(true); + let sendMail; for (let i = 0; i < emailList.length; i++) { try { @@ -39,6 +41,7 @@ function EmailComponent({ const openSignUrl = "https://www.opensignlabs.com/contact-us"; const themeBGcolor = themeColor; let params = { + mailProvider: activeMailAdapter, extUserId: extUserId, pdfName: pdfName, url: pdfUrl, diff --git a/apps/OpenSign/src/constant/Utils.js b/apps/OpenSign/src/constant/Utils.js index fb7f7309f..3ec7bad23 100644 --- a/apps/OpenSign/src/constant/Utils.js +++ b/apps/OpenSign/src/constant/Utils.js @@ -13,9 +13,10 @@ export const openInNewTab = (url) => { window.open(url, "_blank", "noopener,noreferrer"); }; -export async function fetchSubscription(extUserId) { +export async function fetchSubscription(extUserId, contactObjId) { try { const extClass = localStorage.getItem("Extand_Class"); + const isGuestSign = localStorage.getItem("isGuestSigner"); let extUser; if (extClass) { const jsonSender = JSON.parse(extClass); @@ -30,11 +31,19 @@ export async function fetchSubscription(extUserId) { "X-Parse-Application-Id": localStorage.getItem("parseAppId"), sessionToken: localStorage.getItem("accesstoken") }; - const params = { extUserId: extUser }; + const params = isGuestSign + ? { contactId: contactObjId } + : { extUserId: extUser }; const tenatRes = await axios.post(url, params, { headers: headers }); - const plan = tenatRes.data?.result?.result?.PlanCode; - const billingDate = tenatRes.data?.result?.result?.Next_billing_date?.iso; - return { plan, billingDate }; + let plan, status, billingDate; + if (isGuestSign) { + plan = tenatRes.data?.result?.result?.plan; + status = tenatRes.data?.result?.result?.isSubscribed; + } else { + plan = tenatRes.data?.result?.result?.PlanCode; + billingDate = tenatRes.data?.result?.result?.Next_billing_date?.iso; + } + return { plan, billingDate, status }; } catch (err) { console.log("Err in fetch subscription", err); return { plan: "", billingDate: "" }; @@ -528,7 +537,8 @@ export const signPdfFun = async ( signerObjectId, setIsAlert, objectId, - isSubscribed + isSubscribed, + activeMailAdapter ) => { let singleSign, isCustomCompletionMail = false; @@ -548,6 +558,7 @@ export const signPdfFun = async ( } singleSign = { + mailProvider: activeMailAdapter, pdfFile: base64Url, docId: documentId, userId: signerObjectId, diff --git a/apps/OpenSign/src/pages/PdfRequestFiles.js b/apps/OpenSign/src/pages/PdfRequestFiles.js index 70a252528..9b83567da 100644 --- a/apps/OpenSign/src/pages/PdfRequestFiles.js +++ b/apps/OpenSign/src/pages/PdfRequestFiles.js @@ -24,7 +24,8 @@ import { radioButtonWidget, replaceMailVaribles, fetchSubscription, - convertPdfArrayBuffer + convertPdfArrayBuffer, + contractUsers } from "../constant/Utils"; import Loader from "../primitives/LoaderWithMsg"; import HandleError from "../primitives/HandleError"; @@ -138,10 +139,12 @@ function PdfRequestFiles() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [divRef.current]); - async function checkIsSubscribed(extUserId) { - const res = await fetchSubscription(extUserId); + async function checkIsSubscribed(extUserId, contactId) { + const isGuestSign = localStorage.getItem("isGuestSigner"); + const res = await fetchSubscription(extUserId, contactId); const plan = res.plan; - const billingDate = res.billingDate; + const billingDate = res?.billingDate; + const status = res?.status; if (plan === "freeplan") { return true; } else if (billingDate) { @@ -155,8 +158,15 @@ function PdfRequestFiles() { navigate(`/subscription`); } } + } else if (isGuestSign) { + if (status) { + setIsSubscribed(true); + return true; + } else { + setIsSubscriptionExpired(true); + } } else { - if (location.pathname.includes("/load/")) { + if (isGuestSign) { setIsSubscriptionExpired(true); } else { navigate(`/subscription`); @@ -178,9 +188,7 @@ function PdfRequestFiles() { } else { setPdfArrayBuffer(arrayBuffer); } - if (isEnableSubscription) { - await checkIsSubscribed(documentData[0]?.ExtUserPtr?.objectId); - } + setExtUserId(documentData[0]?.ExtUserPtr?.objectId); const isCompleted = documentData[0].IsCompleted && documentData[0].IsCompleted; @@ -196,6 +204,12 @@ function PdfRequestFiles() { ); currUserId = getCurrentSigner[0] ? getCurrentSigner[0].objectId : ""; + if (isEnableSubscription) { + await checkIsSubscribed( + documentData[0]?.ExtUserPtr?.objectId, + currUserId + ); + } setSignerObjectId(currUserId); if (documentData[0].SignedUrl) { setPdfUrl(documentData[0].SignedUrl); @@ -577,6 +591,20 @@ function PdfRequestFiles() { ); //get ExistUserPtr object id of user class to get tenantDetails const objectId = pdfDetails?.[0]?.ExtUserPtr?.UserId?.objectId; + + const res = await contractUsers(jsonSender?.email); + console.log("res", res); + let activeMailAdapter = ""; + if (res === "Error: Something went wrong!") { + setHandleError("Error: Something went wrong!"); + setIsLoading({ + isLoad: false + }); + } else if (!res || res?.length === 0) { + activeMailAdapter = ""; + } else if (res[0] && res.length) { + activeMailAdapter = res[0]?.active_mail_adapter; + } //function for call to embed signature in pdf and get digital signature pdf try { const res = await signPdfFun( @@ -585,7 +613,8 @@ function PdfRequestFiles() { signerObjectId, setIsAlert, objectId, - isSubscribed + isSubscribed, + activeMailAdapter ); if (res && res.status === "success") { setPdfUrl(res.data); @@ -677,6 +706,7 @@ function PdfRequestFiles() { } let params = { + mailProvider: activeMailAdapter, extUserId: extUserId, recipient: user.Email, subject: requestSubject diff --git a/apps/OpenSign/src/pages/PlaceHolderSign.js b/apps/OpenSign/src/pages/PlaceHolderSign.js index cd11a1c03..cb8928940 100644 --- a/apps/OpenSign/src/pages/PlaceHolderSign.js +++ b/apps/OpenSign/src/pages/PlaceHolderSign.js @@ -123,6 +123,7 @@ function PlaceHolderSign() { const [requestSubject, setRequestSubject] = useState(""); const [requestBody, setRequestBody] = useState(""); const [pdfArrayBuffer, setPdfArrayBuffer] = useState(""); + const [activeMailAdapter, setActiveMailAdapter] = useState(""); const [isAlreadyPlace, setIsAlreadyPlace] = useState({ status: false, message: "" @@ -406,7 +407,14 @@ function PlaceHolderSign() { setIsLoading(loadObj); } const res = await contractUsers(jsonSender.email); - if (res[0] && res.length) { + if (res === "Error: Something went wrong!") { + const loadObj = { + isLoad: false + }; + setHandleError("Error: Something went wrong!"); + setIsLoading(loadObj); + } else if (res[0] && res.length) { + setActiveMailAdapter(res[0]?.active_mail_adapter); setSignerUserId(res[0].objectId); const tourstatus = res[0].TourStatus && res[0].TourStatus; if (tourstatus && tourstatus.length > 0) { @@ -422,12 +430,6 @@ function PlaceHolderSign() { isLoad: false }; setIsLoading(loadObj); - } else if (res === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); } else if (res.length === 0) { setHandleError("No Data Found!"); const loadObj = { @@ -1104,6 +1106,7 @@ function PlaceHolderSign() { } let params = { + mailProvider: activeMailAdapter, extUserId: extUserId, recipient: signerMail[i].Email, subject: isCustomize diff --git a/apps/OpenSign/src/pages/SignyourselfPdf.js b/apps/OpenSign/src/pages/SignyourselfPdf.js index 871b0c426..b14c6934c 100644 --- a/apps/OpenSign/src/pages/SignyourselfPdf.js +++ b/apps/OpenSign/src/pages/SignyourselfPdf.js @@ -104,6 +104,7 @@ function SignYourSelf() { const [extUserId, setExtUserId] = useState(""); const [isCompleted, setIsCompleted] = useState(false); const [pdfArrayBuffer, setPdfArrayBuffer] = useState(""); + const [activeMailAdapter, setActiveMailAdapter] = useState(""); const divRef = useRef(null); const nodeRef = useRef(null); const [, drop] = useDrop({ @@ -266,7 +267,14 @@ function SignYourSelf() { setIsLoading(loadObj); }); const contractUsersRes = await contractUsers(jsonSender.email); - if (contractUsersRes[0] && contractUsersRes.length > 0) { + if (contractUsersRes === "Error: Something went wrong!") { + const loadObj = { + isLoad: false + }; + setHandleError("Error: Something went wrong!"); + setIsLoading(loadObj); + } else if (contractUsersRes[0] && contractUsersRes.length > 0) { + setActiveMailAdapter(contractUsersRes[0]?.active_mail_adapter); setContractName("_Users"); setSignerUserId(contractUsersRes[0].objectId); const tourstatuss = @@ -286,12 +294,6 @@ function SignYourSelf() { isLoad: false }; setIsLoading(loadObj); - } else if (contractUsersRes === "Error: Something went wrong!") { - const loadObj = { - isLoad: false - }; - setHandleError("Error: Something went wrong!"); - setIsLoading(loadObj); } else if (contractUsersRes.length === 0) { const contractContactBook = await contactBook(jsonSender.objectId); if (contractContactBook && contractContactBook.length > 0) { @@ -615,7 +617,8 @@ function SignYourSelf() { let singleSign = { pdfFile: base64Url, docId: documentId, - isCustomCompletionMail: isCustomCompletionMail + isCustomCompletionMail: isCustomCompletionMail, + mailProvider: activeMailAdapter }; await axios @@ -1138,6 +1141,7 @@ function SignYourSelf() { sender={jsonSender} setIsAlert={setIsAlert} extUserId={extUserId} + activeMailAdapter={activeMailAdapter} /> {/* pdf header which contain funish back button */}
new Date()) { + return { status: 'success', result: { isSubscribed: true } }; + } else { + return { status: 'success', result: { isSubscribed: false } }; + } + } else { + return { status: 'success', result: { isSubscribed: false } }; + } + } else { + return { status: 'success', result: { isSubscribed: false } }; + } + } else { + return { status: 'error', result: 'User not found!' }; + } + } else { + return { status: 'error', result: 'Invalid session token!' }; + } + } catch (err) { + console.log('Err in get subscription2', err.message); + return { status: 'error', result: err.message }; + } + } else { + return { status: 'error', result: 'Invalid session token!' }; } }