From 99ad7129bb7995db99967481c5c192b5ed40344d Mon Sep 17 00:00:00 2001
From: Felipe D'Abrantes <felidabrantes@gmail>
Date: Wed, 15 Mar 2023 02:56:06 +0000
Subject: [PATCH] Add insert method to Daily repository (#19)

---
 .../app/repositories/DailyRepository.scala    | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/backend-services/feed-service/app/repositories/DailyRepository.scala b/backend-services/feed-service/app/repositories/DailyRepository.scala
index 8daeddc4..fa8a8370 100644
--- a/backend-services/feed-service/app/repositories/DailyRepository.scala
+++ b/backend-services/feed-service/app/repositories/DailyRepository.scala
@@ -53,4 +53,27 @@ class DailyRepository extends MongoDBClient {
             ))
         })
     }
+
+    /**
+     * Inserts a Daily record into the database.
+     * 
+     * @return A Future containing the inserted Daily object with the generated ID.
+     */
+    def insertDaily(daily: Daily): Future[Daily] = {
+        // Don't supply an ID as Mongo will generate one for us
+        val document = Document(
+            "user_id" -> daily.userId,
+            "question_id" -> daily.questionId,
+            "content" -> daily.content,
+            "likes" -> daily.likes
+        )
+
+        val result = insertOne(dailiesCollection, document)
+
+        // Return a Daily entity with the generated ID
+        result.flatMap(id => {
+            val updatedDaily = daily.copy(id = Some(new ObjectId(id)))
+            Future.successful(updatedDaily)
+        })
+    }
 }
-- 
GitLab