Skip to content

Commit c88f2f4

Browse files
authored
Merge pull request #113 from Bit-Apps-Pro/rishad-dev-tmp
Version updated to v2.6.7
2 parents 8bd98b7 + 00172ee commit c88f2f4

File tree

8 files changed

+153
-120
lines changed

8 files changed

+153
-120
lines changed

bitwpfi.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Plugin Name: Bit Integrations
55
* Plugin URI: https://bitapps.pro/bit-integrations
66
* Description: Bit Integrations is a platform that integrates with over 290+ different platforms to help with various tasks on your WordPress site, like WooCommerce, Form builder, Page builder, LMS, Sales funnels, Bookings, CRM, Webhooks, Email marketing, Social media and Spreadsheets, etc
7-
* Version: 2.6.6
7+
* Version: 2.6.7
88
* Author: Automation & Integration Plugin - Bit Apps
99
* Author URI: https://bitapps.pro
1010
* Text Domain: bit-integrations
@@ -24,7 +24,7 @@
2424
$btcbi_db_version = '1.1';
2525

2626
// Define most essential constants.
27-
define('BTCBI_VERSION', '2.6.6');
27+
define('BTCBI_VERSION', '2.6.7');
2828
define('BTCBI_PLUGIN_MAIN_FILE', __FILE__);
2929

3030
require_once plugin_dir_path(__FILE__) . 'includes/loader.php';

frontend-dev/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,20 @@ export default function GoogleSheetAuthorization({
2626
redirectLocation,
2727
isEdit
2828
}) {
29-
const [isAuthorized, setisAuthorized] = useState(false)
29+
const [isAuthorized, setIsAuthorized] = useState(false)
3030
const [error, setError] = useState({ clientId: '', clientSecret: '' })
3131
const btcbi = useRecoilValue($btcbi)
3232
const { googleSheet } = tutorialLinks
3333
const [authData, setAuthData] = useState([])
3434
const [authInfo, setAuthInfo] = useRecoilState(authInfoAtom);
3535
const [selectedAuthType, setSelectedAuthType] = useState('Custom Authorization')
36-
const [selectedUserId, setSelectedUserId] = useState(null)
37-
36+
// const [selectedUserId, setSelectedUserId] = useState(null)
3837

3938
//Commented for one click authorization
4039

4140
// const handleChange = (option) => {
4241
// setSelectedAuthType(option)
43-
// setisAuthorized(false)
42+
// setIsAuthorized(false)
4443

4544
// setSheetConf((prevConf) => ({
4645
// ...prevConf,
@@ -76,32 +75,33 @@ export default function GoogleSheetAuthorization({
7675
setIsLoading(false)
7776
})
7877
}
79-
useEffect(() => {
80-
if (step === 1) {
81-
getAuthData()
82-
}
83-
}, [])
8478

79+
// useEffect(() => {
80+
// if (step === 1) {
81+
// getAuthData()
82+
// }
83+
// }, [])
8584

86-
useEffect(() => {
8785

88-
if (step === 1 && isEdit) {
86+
// useEffect(() => {
8987

90-
const authIdExists = authData.find(auth => auth.id === sheetConf.authId);
88+
// if (step === 1 && isEdit) {
9189

92-
if (authIdExists) {
93-
setSelectedUserId(sheetConf.authId)
94-
} else {
95-
setSelectedUserId(null)
96-
}
97-
}
98-
}, [authData])
90+
// const authIdExists = authData.find(auth => auth.id === sheetConf.authId);
91+
92+
// if (authIdExists) {
93+
// setSelectedUserId(sheetConf.authId)
94+
// } else {
95+
// setSelectedUserId(null)
96+
// }
97+
// }
98+
// }, [authData])
9999

100100

101101
const handleVerificationCode = async (authInfo) => {
102-
await tokenHelper(authInfo, sheetConf, setSheetConf, selectedAuthType, authData, setAuthData, setIsLoading, setSnackbar);
102+
await tokenHelper(authInfo, sheetConf, setSheetConf, setIsAuthorized, selectedAuthType, authData, setAuthData, setIsLoading, setSnackbar);
103103
setAuthInfo(undefined)
104-
getAuthData()
104+
// getAuthData()
105105
}
106106

107107
useEffect(() => {
@@ -121,20 +121,21 @@ export default function GoogleSheetAuthorization({
121121
}
122122

123123
const nextPage = () => {
124-
const selectedAuth = authData.find((item) => item.id === selectedUserId)
125-
setSheetConf((prevConf) => ({
126-
...prevConf,
127-
tokenDetails: selectedAuth ? selectedAuth.tokenDetails : '',
128-
authId: selectedAuth ? selectedAuth.id : '',
129-
}))
124+
// const selectedAuth = authData.find((item) => item.id === selectedUserId)
125+
// setSheetConf((prevConf) => ({
126+
// ...prevConf,
127+
// tokenDetails: selectedAuth ? selectedAuth.tokenDetails : '',
128+
// authId: selectedAuth ? selectedAuth.id : '',
129+
// }))
130+
130131
setTimeout(() => {
131132
document.getElementById('btcd-settings-wrp').scrollTop = 0
132133
}, 300)
133134

134135
setstep(2)
135136
refreshSpreadsheets(
136137
formID,
137-
{ ...sheetConf, tokenDetails: selectedAuth ? selectedAuth.tokenDetails : '', authId: selectedAuth ? selectedAuth.id : '' },
138+
sheetConf,
138139
setSheetConf,
139140
setIsLoading,
140141
setSnackbar
@@ -207,7 +208,7 @@ export default function GoogleSheetAuthorization({
207208
}}
208209
/>
209210
)}
210-
{authData.length > 0 &&
211+
{/* {authData.length > 0 &&
211212
<>
212213
<h2>Choose your connected account</h2>
213214
<AuthorizationAccountList
@@ -219,15 +220,15 @@ export default function GoogleSheetAuthorization({
219220
isEdit={isEdit}
220221
/>
221222
</>
222-
}
223+
} */}
223224
{(isAuthorized && selectedAuthType === "One Click Authorization") &&
224225
(<button onClick={() => processAuth()} className="btn btcd-btn-lg purple sh-sm flx" type="button" disabled={isLoading}>
225226
{isAuthorized ? __('Authorized ✔', 'bit-integrations') : __('Authorize', 'bit-integrations')}
226227
{isLoading && <LoaderSm size={20} clr="#022217" className="ml-2" />}
227228
</button>
228229
)}
229230
<br />
230-
<button onClick={() => nextPage(2)} className="btn f-right btcd-btn-lg purple sh-sm flx" type="button" disabled={!selectedUserId || authData.length === 0}>
231+
<button onClick={() => nextPage(2)} className="btn f-right btcd-btn-lg purple sh-sm flx" type="button" disabled={!isAuthorized}>
231232
{__('Next', 'bit-integrations')}
232233
<BackIcn className="ml-1 rev-icn" />
233234
</button>

frontend-dev/src/components/AllIntegrations/GoogleSheet/GoogleSheetCommonFunc.js

Lines changed: 76 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { __, sprintf } from '../../../Utils/i18nwrap'
22
import bitsFetch from '../../../Utils/bitsFetch'
33
import { deepCopy } from '../../../Utils/Helpers'
44
import { handleAuthData } from '../GlobalIntegrationHelper'
5+
import { create } from 'mutative'
56

67
export const handleInput = (
78
e,
@@ -43,8 +44,7 @@ export const spreadSheetChange = (sheetConf, formID, setSheetConf, setIsLoading,
4344
if (!newConf?.default?.worksheets?.[sheetConf.spreadsheetId]) {
4445
refreshWorksheets(formID, newConf, setSheetConf, setIsLoading, setSnackbar)
4546
} else if (Object.keys(newConf?.default?.worksheets?.[sheetConf.spreadsheetId]).length === 1) {
46-
newConf.worksheetName =
47-
newConf?.default?.worksheets?.[sheetConf.spreadsheetId][0].properties.title
47+
newConf.worksheetName = newConf?.default?.worksheets?.[sheetConf.spreadsheetId][0].properties.title
4848

4949
if (!newConf?.default?.worksheets?.headers?.[newConf.worksheetName]) {
5050
refreshWorksheetHeaders(formID, newConf, setSheetConf, setIsLoading, setSnackbar)
@@ -67,7 +67,9 @@ export const worksheetChange = (sheetConf, formID, setSheetConf, setIsLoading, s
6767
}
6868

6969
export const refreshSpreadsheets = (formID, sheetConf, setSheetConf, setIsLoading, setSnackbar) => {
70-
const isCustomAuth = !sheetConf.tokenDetails?.selectedAuthType || sheetConf.tokenDetails.selectedAuthType === 'Custom Authorization'
70+
const isCustomAuth =
71+
!sheetConf.tokenDetails?.selectedAuthType ||
72+
sheetConf.tokenDetails.selectedAuthType === 'Custom Authorization'
7173
const refreshModulesRequestParams = {
7274
formID,
7375
id: sheetConf.id,
@@ -79,7 +81,7 @@ export const refreshSpreadsheets = (formID, sheetConf, setSheetConf, setIsLoadin
7981

8082
setIsLoading(true)
8183
bitsFetch(refreshModulesRequestParams, 'gsheet_refresh_spreadsheets')
82-
.then((result) => {
84+
.then(result => {
8385
if (result && result.success) {
8486
const newConf = { ...sheetConf }
8587
if (!newConf.default) {
@@ -127,7 +129,7 @@ export const refreshWorksheets = (formID, sheetConf, setSheetConf, setIsLoading,
127129
tokenDetails: sheetConf.tokenDetails
128130
}
129131
bitsFetch(refreshSpreadsheetsRequestParams, 'gsheet_refresh_worksheets')
130-
.then((result) => {
132+
.then(result => {
131133
if (result && result.success) {
132134
const newConf = { ...sheetConf }
133135
if (result.data.worksheets) {
@@ -153,20 +155,16 @@ export const refreshWorksheets = (formID, sheetConf, setSheetConf, setIsLoading,
153155
.catch(() => setIsLoading(false))
154156
}
155157

156-
export const refreshWorksheetHeaders = (
157-
formID,
158-
sheetConf,
159-
setSheetConf,
160-
setIsLoading,
161-
setSnackbar
162-
) => {
158+
export const refreshWorksheetHeaders = (formID, sheetConf, setSheetConf, setIsLoading, setSnackbar) => {
163159
const { spreadsheetId, worksheetName, header, headerRow } = sheetConf
164160
if (!spreadsheetId && !worksheetName && !header && !headerRow) {
165161
return
166162
}
167163

168164
setIsLoading(true)
169-
const isCustomAuth = !sheetConf.tokenDetails?.selectedAuthType || sheetConf.tokenDetails.selectedAuthType === 'Custom Authorization'
165+
const isCustomAuth =
166+
!sheetConf.tokenDetails?.selectedAuthType ||
167+
sheetConf.tokenDetails.selectedAuthType === 'Custom Authorization'
170168
const refreshWorksheetHeadersRequestParams = {
171169
formID,
172170
spreadsheetId,
@@ -179,7 +177,7 @@ export const refreshWorksheetHeaders = (
179177
}
180178

181179
bitsFetch(refreshWorksheetHeadersRequestParams, 'gsheet_refresh_worksheet_headers')
182-
.then((result) => {
180+
.then(result => {
183181
if (result && result.success) {
184182
const newConf = { ...sheetConf }
185183
if (result.data.worksheet_headers?.length > 0) {
@@ -224,8 +222,7 @@ export const refreshWorksheetHeaders = (
224222
}
225223

226224
export const handleAuthorize = (confTmp, selectedAuthType, setError, setIsLoading) => {
227-
228-
let clientId = '';
225+
let clientId = ''
229226
if (selectedAuthType === 'One Click Authorization') {
230227
clientId = confTmp.oneClickAuthCredentials.clientId
231228
} else if (selectedAuthType === 'Custom Authorization') {
@@ -243,8 +240,9 @@ export const handleAuthorize = (confTmp, selectedAuthType, setError, setIsLoadin
243240

244241
const scopes = 'https://www.googleapis.com/auth/drive'
245242
// eslint-disable-next-line no-undef
246-
const redirectURI = 'https://auth-apps.bitapps.pro/redirect/v2';
247-
const finalRedirectUri = selectedAuthType === 'One Click Authorization' ? redirectURI : `${btcbi.api.base}/redirect`
243+
const redirectURI = 'https://auth-apps.bitapps.pro/redirect/v2'
244+
const finalRedirectUri =
245+
selectedAuthType === 'One Click Authorization' ? redirectURI : `${btcbi.api.base}/redirect`
248246

249247
const { href, hash } = window.location
250248
const stateUrl = hash ? href.replace(hash, '#/auth-response/') : `${href}#/auth-response/`
@@ -259,38 +257,71 @@ export const handleAuthorize = (confTmp, selectedAuthType, setError, setIsLoadin
259257
}
260258
}, 500)
261259
}
262-
263260
}
264261

265-
export const tokenHelper = async (authInfo, confTmp, setConf, selectedAuthType, authData, setAuthData, setIsLoading, setSnackbar) => {
262+
export const tokenHelper = async (
263+
authInfo,
264+
confTmp,
265+
setConf,
266+
setIsAuthorized,
267+
selectedAuthType,
268+
authData,
269+
setAuthData,
270+
setIsLoading,
271+
setSnackbar
272+
) => {
266273
if (!selectedAuthType) {
267274
return
268275
}
269276
const tokenRequestParams = {}
270-
tokenRequestParams.code = authInfo.code || '';
271-
tokenRequestParams.clientId = selectedAuthType === 'One Click Authorization' ? confTmp.oneClickAuthCredentials.clientId : confTmp.clientId
272-
tokenRequestParams.clientSecret = selectedAuthType === 'One Click Authorization' ? confTmp.oneClickAuthCredentials.clientSecret : confTmp.clientSecret
277+
tokenRequestParams.code = authInfo.code || ''
278+
tokenRequestParams.clientId =
279+
selectedAuthType === 'One Click Authorization'
280+
? confTmp.oneClickAuthCredentials.clientId
281+
: confTmp.clientId
282+
tokenRequestParams.clientSecret =
283+
selectedAuthType === 'One Click Authorization'
284+
? confTmp.oneClickAuthCredentials.clientSecret
285+
: confTmp.clientSecret
273286
// eslint-disable-next-line no-undef
274-
const redirectURI = 'https://auth-apps.bitapps.pro/redirect/v2';
275-
tokenRequestParams.redirectURI = selectedAuthType === 'One Click Authorization' ? redirectURI : `${btcbi.api.base}/redirect`
287+
const redirectURI = 'https://auth-apps.bitapps.pro/redirect/v2'
288+
tokenRequestParams.redirectURI =
289+
selectedAuthType === 'One Click Authorization' ? redirectURI : `${btcbi.api.base}/redirect`
276290

277291
setIsLoading(true)
278292
await bitsFetch(tokenRequestParams, 'gsheet_generate_token')
279293
.then(result => result)
280294
.then(async result => {
281295
if (result && result.success) {
282-
const userInfo = await fetchUserInfo(result.data)
296+
// const userInfo = await fetchUserInfo(result.data)
297+
// if (userInfo) {
298+
// const newConf = { ...confTmp }
299+
// result.data.selectedAuthType = selectedAuthType
300+
// await handleAuthData(newConf.type, result.data, userInfo, setAuthData);
301+
// newConf.setisAuthorized = true
302+
// setConf(newConf)
303+
// setSnackbar({ show: true, msg: __('Authorized Successfully', 'bigt-integrations') })
304+
// }
283305

284-
if (userInfo) {
285-
const newConf = { ...confTmp }
286-
result.data.selectedAuthType = selectedAuthType
287-
await handleAuthData(newConf.type, result.data, userInfo, setAuthData);
288-
newConf.setisAuthorized = true
289-
setConf(newConf)
290-
setSnackbar({ show: true, msg: __('Authorized Successfully', 'bigt-integrations') })
291-
}
292-
} else if ((result && result.data && result.data.data) || (!result.success && typeof result.data === 'string')) {
293-
setSnackbar({ show: true, msg: `${__('Authorization failed Cause:', 'bit-integrations')}${result.data.data || result.data}. ${__('please try again', 'bit-integrations')}` })
306+
setConf(prevConf =>
307+
create(prevConf, draftConf => {
308+
draftConf.tokenDetails = result.data
309+
})
310+
)
311+
312+
setIsAuthorized(true)
313+
setSnackbar({
314+
show: true,
315+
msg: __('Authorized Successfully', 'bit-integrations')
316+
})
317+
} else if (
318+
(result && result.data && result.data.data) ||
319+
(!result.success && typeof result.data === 'string')
320+
) {
321+
setSnackbar({
322+
show: true,
323+
msg: `${__('Authorization failed Cause:', 'bit-integrations')}${result.data.data || result.data}. ${__('please try again', 'bit-integrations')}`
324+
})
294325
} else {
295326
setSnackbar({
296327
show: true,
@@ -301,9 +332,9 @@ export const tokenHelper = async (authInfo, confTmp, setConf, selectedAuthType,
301332
})
302333
}
303334

304-
export const checkMappedFields = (sheetconf) => {
335+
export const checkMappedFields = sheetconf => {
305336
const mappedFleld = sheetconf.field_map
306-
? sheetconf.field_map.filter((mapped) => !mapped.formField && !mapped.googleSheetField)
337+
? sheetconf.field_map.filter(mapped => !mapped.formField && !mapped.googleSheetField)
307338
: []
308339
if (mappedFleld.length > 0) {
309340
return false
@@ -312,18 +343,17 @@ export const checkMappedFields = (sheetconf) => {
312343
}
313344

314345
async function fetchUserInfo(tokenResponse) {
315-
const accessToken = tokenResponse.access_token;
346+
const accessToken = tokenResponse.access_token
316347

317348
try {
318349
const userInfoResponse = await fetch('https://www.googleapis.com/drive/v3/about?fields=user', {
319350
headers: {
320-
Authorization: `Bearer ${accessToken}`,
321-
},
322-
});
323-
const userInfo = await userInfoResponse.json();
324-
return userInfo;
351+
Authorization: `Bearer ${accessToken}`
352+
}
353+
})
354+
const userInfo = await userInfoResponse.json()
355+
return userInfo
325356
} catch (error) {
326-
console.error('Error fetching user info:', error);
357+
console.error('Error fetching user info:', error)
327358
}
328359
}
329-

0 commit comments

Comments
 (0)