From c4d45412fd1d7096f426b1fd6a63770a32224c6d Mon Sep 17 00:00:00 2001 From: Eric Doughty-Papassideris Date: Fri, 28 Feb 2025 00:54:35 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20back:=20repository=20remov?= =?UTF-8?q?e=20returns=20success=20now=20and=20file=20path=20alternative?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/services/orm/connectors/mongodb/mongodb.ts | 2 +- .../core/platform/services/database/services/orm/manager.ts | 6 +++--- .../services/database/services/orm/repository/repository.ts | 4 ++-- tdrive/backend/node/src/services/files/services/index.ts | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/mongodb/mongodb.ts b/tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/mongodb/mongodb.ts index 3890361e..ba3644a3 100644 --- a/tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/mongodb/mongodb.ts +++ b/tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/mongodb/mongodb.ts @@ -291,7 +291,7 @@ export class MongoConnector extends AbstractConnector { }); Promise.all(promises).then(results => { - resolve(results.map(result => result.acknowledged)); + resolve(results.map(result => result.acknowledged && result.deletedCount == 1)); }); }); } diff --git a/tdrive/backend/node/src/core/platform/services/database/services/orm/manager.ts b/tdrive/backend/node/src/core/platform/services/database/services/orm/manager.ts index cb334b86..7eff4373 100644 --- a/tdrive/backend/node/src/core/platform/services/database/services/orm/manager.ts +++ b/tdrive/backend/node/src/core/platform/services/database/services/orm/manager.ts @@ -70,7 +70,7 @@ export default class EntityManager> { return this; } - public async remove(entity: EntityType, entityType?: EntityType): Promise { + public async remove(entity: EntityType, entityType?: EntityType): Promise { if (entityType) { // eslint-disable-next-line @typescript-eslint/no-explicit-any entity = _.merge(new (entityType as any)(), entity); @@ -79,12 +79,12 @@ export default class EntityManager> { throw Error("Cannot remove this object: it is not an entity."); } - await this.connector.remove([entity]); + const result = await this.connector.remove([entity]); localEventBus.publish("database:entities:removed", { entities: [entity], } as DatabaseEntitiesRemovedEvent); - return this; + return result[0]; } } diff --git a/tdrive/backend/node/src/core/platform/services/database/services/orm/repository/repository.ts b/tdrive/backend/node/src/core/platform/services/database/services/orm/repository/repository.ts index e79df829..6b5d7da4 100644 --- a/tdrive/backend/node/src/core/platform/services/database/services/orm/repository/repository.ts +++ b/tdrive/backend/node/src/core/platform/services/database/services/orm/repository/repository.ts @@ -149,8 +149,8 @@ export default class Repository { await Promise.all(entities.map(entity => this.manager.persist(entity))); } - async remove(entity: EntityType, _context?: ExecutionContext): Promise { - await this.manager.remove(entity); + async remove(entity: EntityType, _context?: ExecutionContext): Promise { + return this.manager.remove(entity); } //Avoid using this except when no choice diff --git a/tdrive/backend/node/src/services/files/services/index.ts b/tdrive/backend/node/src/services/files/services/index.ts index 233d1dd8..e6330ab7 100644 --- a/tdrive/backend/node/src/services/files/services/index.ts +++ b/tdrive/backend/node/src/services/files/services/index.ts @@ -478,7 +478,9 @@ export class FileServiceImpl { return this.algorithm; } } -export const getFilePath = (entity: File): string => { +export const getFilePath = ( + entity: File | { company_id: string; user_id?: string; id: string }, +): string => { return `${gr.platformServices.storage.getHomeDir()}/files/${entity.company_id}/${ entity.user_id || "anonymous" }/${entity.id}`;