import { getServerSession } from 'next-auth'; import { NextCloudService } from './nextcloud'; export async function getNextCloudService() { const session = await getServerSession(); if (!session?.user?.email) { throw new Error('Not authenticated'); } // Get the NextCloud token from the session const token = session.nextcloudToken; if (!token) { console.error('Session details:', { hasSession: !!session, hasUser: !!session?.user, email: session?.user?.email, sessionKeys: Object.keys(session || {}), // Don't log sensitive data tokenPresent: !!token, hasNextCloudToken: 'nextcloudToken' in session }); throw new Error('No NextCloud token available'); } try { console.log('Initializing NextCloud service with token length:', token.length); const service = new NextCloudService(token); return service; } catch (error) { console.error('Failed to initialize NextCloud service:', { error: error instanceof Error ? error.message : error, hasToken: !!token, tokenLength: token.length }); throw error; } }