Browse Source

fix(revisions): query for shared vault revisions

Karol Sójko 1 year ago
parent
commit
7e11821021

+ 6 - 1
packages/revisions/src/Infra/TypeORM/MongoDB/MongoDBRevisionRepository.ts

@@ -98,7 +98,12 @@ export class MongoDBRevisionRepository implements RevisionRepositoryInterface {
         where: {
           $and: [
             { itemUuid: { $eq: itemUuid.value } },
-            { sharedVaultUuid: { $in: sharedVaultUuids.map((uuid) => uuid.value) } },
+            {
+              $or: [
+                { sharedVaultUuid: { $in: sharedVaultUuids.map((uuid) => uuid.value) } },
+                { userUuid: { $eq: userUuid.value } },
+              ],
+            },
           ],
         },
         order: {

+ 11 - 3
packages/revisions/src/Infra/TypeORM/SQL/SQLRevisionRepository.ts

@@ -28,13 +28,21 @@ export class SQLRevisionRepository extends SQLLegacyRevisionRepository {
       .addSelect('content_type', 'contentType')
       .addSelect('created_at', 'createdAt')
       .addSelect('updated_at', 'updatedAt')
-      .where('item_uuid = :itemUuid AND user_uuid = :userUuid', { itemUuid: itemUuid.value, userUuid: userUuid.value })
       .orderBy('created_at', 'DESC')
 
     if (sharedVaultUuids.length > 0) {
-      queryBuilder.orWhere('item_uuid = :itemUuid AND shared_vault_uuid IN (:...sharedVaultUuids)', {
+      queryBuilder.where(
+        'item_uuid = :itemUuid AND (user_uuid = :userUuid OR shared_vault_uuid IN (:...sharedVaultUuids))',
+        {
+          itemUuid: itemUuid.value,
+          userUuid: userUuid.value,
+          sharedVaultUuids: sharedVaultUuids.map((uuid) => uuid.value),
+        },
+      )
+    } else {
+      queryBuilder.where('item_uuid = :itemUuid AND user_uuid = :userUuid', {
         itemUuid: itemUuid.value,
-        sharedVaultUuids: sharedVaultUuids.map((uuid) => uuid.value),
+        userUuid: userUuid.value,
       })
     }