This commit is contained in:
Matt 2025-06-10 15:42:00 +02:00
parent 4579b35fe0
commit be443ae71b
4 changed files with 79 additions and 1 deletions

View File

@ -392,6 +392,9 @@ const uploadEOI = async (file: File) => {
const response = await $fetch<{ success: boolean; document: any; message: string }>('/api/eoi/upload-document', {
method: 'POST',
headers: {
'x-tag': '094ut234'
},
query: {
interestId: props.interest.Id.toString()
},

View File

@ -6,6 +6,13 @@ export default defineEventHandler(async (event) => {
const { fileName, isFolder, bucket } = body;
const targetBucket = bucket || 'client-portal';
console.log('[delete] Delete request:', {
fileName,
isFolder,
bucket,
targetBucket
});
if (!fileName) {
throw createError({
statusCode: 400,
@ -61,7 +68,18 @@ export default defineEventHandler(async (event) => {
});
} else {
// Delete single file
console.log(`[delete] Attempting to delete file '${fileName}' from bucket '${targetBucket}'`);
// First check if the file exists
try {
const stat = await client.statObject(targetBucket, fileName);
console.log('[delete] File exists in bucket:', stat);
} catch (err: any) {
console.error(`[delete] File '${fileName}' not found in bucket '${targetBucket}':`, err.message);
}
await client.removeObject(targetBucket, fileName);
console.log(`[delete] Successfully deleted '${fileName}' from '${targetBucket}'`);
}
}

View File

@ -57,7 +57,9 @@ export default defineEventHandler(async (event) => {
if (prefix === 'Email Attachments/') {
allFiles = formattedAttachmentFiles.map((file: any) => ({
...file,
name: file.name.replace(attachmentFolder + '/', '')
displayName: file.name.replace(attachmentFolder + '/', ''),
// Keep the full path in 'name' for operations like delete
name: file.name
}));
}
} catch (error) {

View File

@ -0,0 +1,55 @@
export default defineEventHandler(async (event) => {
try {
const { bucket, prefix } = getQuery(event);
if (!bucket) {
return {
success: false,
error: 'Missing bucket parameter'
};
}
console.log('[test-list-bucket] Listing files:', {
bucket: bucket as string,
prefix: prefix as string || ''
});
// Import MinIO client
const { getMinioClient } = await import('~/server/utils/minio');
const client = getMinioClient();
const files: any[] = [];
await new Promise((resolve, reject) => {
const stream = client.listObjectsV2(bucket as string, prefix as string || '', true);
stream.on('data', (obj) => {
if (obj && obj.name) {
files.push({
name: obj.name,
size: obj.size,
lastModified: obj.lastModified
});
}
});
stream.on('error', reject);
stream.on('end', resolve);
});
return {
success: true,
bucket: bucket as string,
prefix: prefix as string || '',
count: files.length,
files: files
};
} catch (error: any) {
console.error('[test-list-bucket] Error:', error);
return {
success: false,
error: 'Failed to list bucket',
details: error.message
};
}
});