From fd85b27e876049a52520903e85b5daf9d4df23fb Mon Sep 17 00:00:00 2001
From: Felipe D'Abrantes <felidabrantes@gmail>
Date: Fri, 7 Apr 2023 23:16:34 +0100
Subject: [PATCH] Default to no projections if not specified

---
 .../app/utils/MongoConnection.scala            | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/backend-services/feed-service/app/utils/MongoConnection.scala b/backend-services/feed-service/app/utils/MongoConnection.scala
index 39caedb8..04ca348a 100644
--- a/backend-services/feed-service/app/utils/MongoConnection.scala
+++ b/backend-services/feed-service/app/utils/MongoConnection.scala
@@ -1,7 +1,7 @@
 package utils
 
 import org.mongodb.scala.{MongoClient, MongoDatabase, MongoCollection}
-import org.mongodb.scala.model.{Filters, Projections, Sorts}
+import org.mongodb.scala.model.{Filters, Sorts}
 import com.mongodb.client.result.{InsertOneResult, UpdateResult}
 
 import org.bson.conversions.Bson
@@ -63,13 +63,17 @@ object MongoConnection {
     def find[T: ClassTag](
         collection: MongoCollection[T], 
         filter: Bson = Filters.empty(), 
-        projection: Bson = Projections.excludeId(),
-        sort: Bson = Sorts.ascending("_id")
+        sort: Bson = Sorts.ascending("_id"),
+        projection: Option[Bson] = None
     ): Future[Seq[T]] = {
-        collection.find[T](filter)
-        .projection(projection)
-        .sort(sort)
-        .toFuture()
+        var result = collection.find[T](filter).sort(sort)
+
+        result = if (projection.isDefined == true)
+            result.projection(projection.get)
+        else
+            result
+        
+        result.toFuture()
     }
 
     /**
-- 
GitLab