Selaa lähdekoodia

fix: Improve Google OAuth token retrieval with proper Promise handling

Taylor Wilsdon (aider) 4 kuukautta sitten
vanhempi
commit
ba19ff8ace
1 muutettua tiedostoa jossa 16 lisäystä ja 8 poistoa
  1. 16 8
      src/lib/utils/google-drive-picker.ts

+ 16 - 8
src/lib/utils/google-drive-picker.ts

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