38 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|