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) {
return new Promise((resolve, reject) => {
const tokenClient = google.accounts.oauth2.initTokenClient({ const tokenClient = google.accounts.oauth2.initTokenClient({
client_id: CLIENT_ID, client_id: CLIENT_ID,
scope: SCOPE.join(' '), scope: SCOPE.join(' '),
callback: (response: any) => { callback: (response: any) => {
if (response.access_token) { if (response.access_token) {
oauthToken = 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;
}; };