From 3e50f006420669136f836f178383f618725ca8c6 Mon Sep 17 00:00:00 2001 From: jurei733 <67505990+jurei733@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:52:04 +0200 Subject: [PATCH 1/6] Fix upload files workspace overwrite if same file_id --- .../services/workspace-files.service.ts | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/apps/backend/src/app/database/services/workspace-files.service.ts b/apps/backend/src/app/database/services/workspace-files.service.ts index d313c91a6..55d44e171 100644 --- a/apps/backend/src/app/database/services/workspace-files.service.ts +++ b/apps/backend/src/app/database/services/workspace-files.service.ts @@ -89,6 +89,7 @@ export class WorkspaceFilesService { // fileSize-Filter: z.B. '0-10KB', '10KB-100KB', '100KB-1MB', '1MB-10MB', '10MB+' const KB = 1024; const MB = 1024 * KB; + // eslint-disable-next-line default-case switch (fileSize) { case '0-10KB': qb = qb.andWhere('file.file_size < :max', { max: 10 * KB }); @@ -468,7 +469,7 @@ export class WorkspaceFilesService { file_size: file.size, data: file.buffer.toString(), file_id: resolvedFileId - }, ['file_id']); + }, ['file_id', 'workspace_id']); } catch (error) { this.logger.error(`Error processing XML file: ${error.message}`); throw error; @@ -485,7 +486,7 @@ export class WorkspaceFilesService { file_size: file.size, file_id: resourceFileId, data: file.buffer.toString() - }, ['file_id']); + }, ['file_id', 'workspace_id']); } private async handleOctetStreamFile(workspaceId: number, file: FileIo): Promise { @@ -800,7 +801,7 @@ export class WorkspaceFilesService { async testCenterImport(entries: Record[]): Promise { try { const registry = this.fileUploadRepository.create(entries); - await this.fileUploadRepository.upsert(registry, ['file_id']); + await this.fileUploadRepository.upsert(registry, ['file_id', 'workspace_id']); return true; } catch (error) { this.logger.error('Error during test center import', error); @@ -811,20 +812,9 @@ export class WorkspaceFilesService { private static getPlayerId(file: FileIo): string { try { const playerCode = file.buffer.toString(); - const playerContent = cheerio.load(playerCode); - - // Search for JSON+LD