carnet api

This commit is contained in:
alma 2025-04-20 13:38:11 +02:00
parent 5950eafbe5
commit 45142b4eb7

View File

@ -103,21 +103,25 @@ export async function GET() {
}
try {
// Establish Nextcloud session with retries
const nextcloudToken = await establishNextcloudSession(nextcloudUrl, session.accessToken);
// Get user's folders using WebDAV with Nextcloud token
// Get user's folders using WebDAV with Keycloak token
const webdavUrl = `${nextcloudUrl}/remote.php/dav/files/${encodeURIComponent(session.user.email)}/`;
console.log('Requesting WebDAV URL:', webdavUrl);
const foldersResponse = await fetch(webdavUrl, {
headers: {
'Authorization': `Bearer ${nextcloudToken}`,
'Authorization': `Bearer ${session.accessToken}`,
'Depth': '1',
'Content-Type': 'application/xml',
},
});
if (foldersResponse.status === 429) {
// Rate limited, wait and retry
const retryAfter = foldersResponse.headers.get('Retry-After');
await sleep((retryAfter ? parseInt(retryAfter) : 5) * 1000);
return GET(); // Retry the entire request
}
if (!foldersResponse.ok) {
const errorText = await foldersResponse.text();
console.error('Failed to fetch folders. Status:', foldersResponse.status);