const { session } = require('electron'); class GraphApiClient { constructor() { this.baseUrl = 'https://graph.microsoft.com/v1.0'; } async getAccessToken() { // Get cookies from all relevant domains // return a fake token for now return 'fake-token'; return accessToken; } cleanPath(path) { return path .replace(/^\/+|\/+$/g, '') // Remove leading/trailing slashes .split('/') .map(segment => encodeURIComponent(segment)) .join('/'); } async listFolderContents(folderPath) { try { const accessToken = await this.getAccessToken(); const cleanPath = this.cleanPath(folderPath); const url = `${this.baseUrl}/me/drive/root:/${cleanPath}:/children`; console.log('Querying OneDrive items from:', url); const response = await fetch(url, { headers: { 'Authorization': `Bearer ${accessToken}`, 'Accept': 'application/json', 'Origin': 'https://onedrive.live.com', 'Referer': 'https://onedrive.live.com/' } }); if (!response.ok) { const errorData = await response.json(); console.error('Graph API error details:', errorData); throw new Error(`Graph API error: ${response.status} ${response.statusText}`); } const data = await response.json(); return data.value; } catch (error) { console.error('Graph API error:', error); throw error; } } } module.exports = new GraphApiClient();