Neah/lib/nextcloud-utils.ts
2025-04-20 12:26:31 +02:00

38 lines
1.2 KiB
TypeScript

import { getServerSession } from 'next-auth';
import { NextCloudService } from './nextcloud';
import { authOptions } from '@/app/api/auth/[...nextauth]/route';
export async function getNextCloudService() {
const session = await getServerSession(authOptions);
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;
}
}