fix: Improve Google OAuth token retrieval with proper Promise handling

This commit is contained in:
Taylor Wilsdon (aider) 2024-12-15 18:31:58 -05:00
parent c3d631ca98
commit ba19ff8ace

View File

@ -59,16 +59,24 @@ export const loadGoogleAuthApi = () => {
export const getAuthToken = async () => { export const getAuthToken = async () => {
if (!oauthToken) { if (!oauthToken) {
const tokenClient = google.accounts.oauth2.initTokenClient({ return new Promise((resolve, reject) => {
client_id: CLIENT_ID, const tokenClient = google.accounts.oauth2.initTokenClient({
scope: SCOPE.join(' '), client_id: CLIENT_ID,
callback: (response: any) => { scope: SCOPE.join(' '),
if (response.access_token) { callback: (response: any) => {
oauthToken = response.access_token; if (response.access_token) {
oauthToken = response.access_token;
resolve(oauthToken);
} else {
reject(new Error('Failed to get access token'));
}
},
error_callback: (error: any) => {
reject(new Error(error.message || 'OAuth error occurred'));
} }
}, });
tokenClient.requestAccessToken();
}); });
await tokenClient.requestAccessToken();
} }
return oauthToken; return oauthToken;
}; };