From add01cb02a689617fa52acc1b85b426d3237167d Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Mon, 1 Apr 2024 20:08:02 +0530 Subject: [PATCH] feat: auto assign free plan in google signup flow --- apps/OpenSign/src/pages/Login.js | 53 ++++++++++++++++++++++++++++--- apps/OpenSign/src/pages/Signup.js | 2 +- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/apps/OpenSign/src/pages/Login.js b/apps/OpenSign/src/pages/Login.js index 2ee9d6c60..ba1714abb 100644 --- a/apps/OpenSign/src/pages/Login.js +++ b/apps/OpenSign/src/pages/Login.js @@ -395,6 +395,18 @@ function Login() { const setThirdpartyLoader = (value) => { setState({ ...state, thirdpartyLoader: value }); }; + const handleFreePlan = async (id) => { + try { + const params = { userId: id }; + const res = await Parse.Cloud.run("freesubscription", params); + if (res.status === "error") { + alert(res.result); + } + } catch (err) { + console.log("err in free subscribe", err.message); + alert("Somenthing went wrong, please try again later!"); + } + }; const thirdpartyLoginfn = async (sessionToken, billingDate) => { const baseUrl = localStorage.getItem("baseUrl"); const parseAppId = localStorage.getItem("parseAppId"); @@ -404,6 +416,11 @@ function Login() { "X-Parse-Application-Id": parseAppId } }); + const param = new URLSearchParams(location.search); + const isFreeplan = param?.get("subscription") === "freeplan"; + if (isFreeplan) { + await handleFreePlan(res.data.objectId); + } await Parse.User.become(sessionToken).then(() => { window.localStorage.setItem("accesstoken", sessionToken); }); @@ -580,13 +597,23 @@ function Login() { if (billingDate > new Date()) { localStorage.removeItem("userDetails"); navigate(redirectUrl); + } else { + if (isFreeplan) { + navigate(redirectUrl); + } else { + navigate(`/subscription`, { + replace: true + }); + } + } + } else { + if (isFreeplan) { + navigate(redirectUrl); } else { navigate(`/subscription`, { replace: true }); } - } else { - navigate(`/subscription`, { replace: true }); } } else { navigate(redirectUrl); @@ -608,10 +635,22 @@ function Login() { // Redirect to the appropriate URL after successful login navigate(redirectUrl); } else { - navigate(`/subscription`, { replace: true }); + if (isFreeplan) { + navigate(redirectUrl); + } else { + navigate(`/subscription`, { + replace: true + }); + } } } else { - navigate(`/subscription`, { replace: true }); + if (isFreeplan) { + navigate(redirectUrl); + } else { + navigate(`/subscription`, { + replace: true + }); + } } } else { navigate(redirectUrl); @@ -1112,7 +1151,11 @@ function Login() { Create Account diff --git a/apps/OpenSign/src/pages/Signup.js b/apps/OpenSign/src/pages/Signup.js index a253f6a9a..a3af7263c 100644 --- a/apps/OpenSign/src/pages/Signup.js +++ b/apps/OpenSign/src/pages/Signup.js @@ -657,7 +657,7 @@ const Signup = () => { Login