0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-07 20:42:44 +00:00

Add retryconfig and forward user ip

This commit is contained in:
Trevor Buckner
2024-09-30 08:31:39 -04:00
parent 40925253bd
commit e9c45b216c
2 changed files with 18 additions and 6 deletions

View File

@@ -25,6 +25,15 @@ if(!config.get('service_account')){
const defaultAuth = serviceAuth || config.get('google_api_key'); const defaultAuth = serviceAuth || config.get('google_api_key');
const retryConfig = {
retry: 3, // Number of retry attempts
retryDelay: 100, // Initial delay in milliseconds
retryDelayMultiplier: 2, // Multiplier for exponential backoff
maxRetryDelay: 32000, // Maximum delay in milliseconds
httpMethodsToRetry: ['PATCH'], // Only retry PATCH requests
statusCodesToRetry: [[429, 429]], // Only retry on 429 status code
};
const GoogleActions = { const GoogleActions = {
authCheck : (account, res, updateTokens=true)=>{ authCheck : (account, res, updateTokens=true)=>{
@@ -147,9 +156,8 @@ const GoogleActions = {
return brews; return brews;
}, },
updateGoogleBrew : async (brew, auth = defaultAuth)=>{ updateGoogleBrew : async (brew, auth = defaultAuth, userIp)=>{
const drive = googleDrive.drive({ version: 'v3', auth: auth }); const drive = googleDrive.drive({ version: 'v3', auth: auth });
console.log(auth == defaultAuth ? 'UPDATE w SERVICEACC' : 'UPDATE w USERACC') console.log(auth == defaultAuth ? 'UPDATE w SERVICEACC' : 'UPDATE w USERACC')
await drive.files.update({ await drive.files.update({
@@ -170,7 +178,11 @@ const GoogleActions = {
media : { media : {
mimeType : 'text/plain', mimeType : 'text/plain',
body : brew.text body : brew.text
} },
headers: {
'X-Forwarded-For': userIp, // Set the X-Forwarded-For header
},
retryConfig
}) })
.catch((err)=>{ .catch((err)=>{
console.log('Error saving to google'); console.log('Error saving to google');

View File

@@ -373,7 +373,7 @@ const api = {
if(!brew.googleId) return; if(!brew.googleId) return;
} else if(brew.googleId) { } else if(brew.googleId) {
// If the google id exists and no other actions are being performed, update the google brew // If the google id exists and no other actions are being performed, update the google brew
const updated = await api.updateGoogleBrew(req.account, api.excludeGoogleProps(brew), res); const updated = await api.updateGoogleBrew(req.account, api.excludeGoogleProps(brew), res, req);
if(!updated) return; if(!updated) return;
} }
@@ -418,12 +418,12 @@ const api = {
res.status(200).send(saved); res.status(200).send(saved);
}, },
updateGoogleBrew : async (account, brew, res)=>{ updateGoogleBrew : async (account, brew, res, req)=>{
let oAuth2Client; let oAuth2Client;
if(account.googleId) if(account.googleId)
oAuth2Client = GoogleActions.authCheck(account, res); oAuth2Client = GoogleActions.authCheck(account, res);
return await GoogleActions.updateGoogleBrew(brew, oAuth2Client); return await GoogleActions.updateGoogleBrew(brew, oAuth2Client, req.ip);
}, },
deleteGoogleBrew : async (account, id, editId, res)=>{ deleteGoogleBrew : async (account, id, editId, res)=>{