Skip to content
Snippets Groups Projects
Commit a3b76408 authored by Felipe D'Abrantes's avatar Felipe D'Abrantes
Browse files

Update liked attribute to list of user IDs

parent dab3405c
No related branches found
No related tags found
1 merge request!14Add endpoints to manage Dailies
...@@ -20,7 +20,7 @@ case class Daily( ...@@ -20,7 +20,7 @@ case class Daily(
userId: ObjectId, userId: ObjectId,
questionId: ObjectId, questionId: ObjectId,
content: String, content: String,
likes: Int, usersLiked: Seq[ObjectId],
createdAt: Date, createdAt: Date,
updatedAt: Date updatedAt: Date
) )
...@@ -36,7 +36,7 @@ object Daily { ...@@ -36,7 +36,7 @@ object Daily {
timeout: Int = 4 timeout: Int = 4
): Daily = { ): Daily = {
val now: Date = Date.from(Instant.now()) val now: Date = Date.from(Instant.now())
val daily: Daily = Daily(None, userId, questionId, content, 0, now, now) val daily: Daily = Daily(None, userId, questionId, content, Seq.empty[ObjectId], now, now)
val future: Future[Daily] = dailyRepo.insertDaily(daily) val future: Future[Daily] = dailyRepo.insertDaily(daily)
Await.result(future, timeout.seconds) Await.result(future, timeout.seconds)
} }
...@@ -63,6 +63,8 @@ object Daily { ...@@ -63,6 +63,8 @@ object Daily {
// Convert from Daily object to JSON (serializing to JSON) // Convert from Daily object to JSON (serializing to JSON)
def toJson(daily: Daily): JsValue = { def toJson(daily: Daily): JsValue = {
val usersLikedAsJsStrings = daily.usersLiked.map(id => JsString(id.toString()))
val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
val formattedCreatedAt: String = dateFormat.format(daily.createdAt) val formattedCreatedAt: String = dateFormat.format(daily.createdAt)
val formattedUpdatedAt: String = dateFormat.format(daily.updatedAt) val formattedUpdatedAt: String = dateFormat.format(daily.updatedAt)
...@@ -72,6 +74,7 @@ object Daily { ...@@ -72,6 +74,7 @@ object Daily {
"userId" -> JsString(daily.userId.toString()), "userId" -> JsString(daily.userId.toString()),
"questionId" -> JsString(daily.questionId.toString()), "questionId" -> JsString(daily.questionId.toString()),
"content" -> JsString(daily.content), "content" -> JsString(daily.content),
"usersLiked" -> JsArray(usersLikedAsJsStrings),
"createdAt" -> JsString(formattedCreatedAt), "createdAt" -> JsString(formattedCreatedAt),
"updatedAt" -> JsString(formattedUpdatedAt) "updatedAt" -> JsString(formattedUpdatedAt)
) )
...@@ -87,5 +90,5 @@ object Daily { ...@@ -87,5 +90,5 @@ object Daily {
} }
def toString(daily: Daily): String = def toString(daily: Daily): String =
return s"Daily(${daily.id.toString()}, ${daily.userId.toString()}, ${daily.questionId.toString()}, ${daily.content}, ${daily.likes})" return s"Daily(${daily.id.toString()}, ${daily.userId.toString()}, ${daily.questionId.toString()}, ${daily.content}, ${daily.usersLiked.toString()})"
} }
...@@ -12,6 +12,8 @@ import scala.concurrent.ExecutionContext.Implicits.global ...@@ -12,6 +12,8 @@ import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{Future, Await} import scala.concurrent.{Future, Await}
import scala.concurrent.duration._ import scala.concurrent.duration._
import scala.collection.JavaConverters._
class DailyRepository extends MongoDBClient { class DailyRepository extends MongoDBClient {
// Loads the default configuration // Loads the default configuration
...@@ -82,7 +84,7 @@ class DailyRepository extends MongoDBClient { ...@@ -82,7 +84,7 @@ class DailyRepository extends MongoDBClient {
"user_id" -> daily.userId, "user_id" -> daily.userId,
"question_id" -> daily.questionId, "question_id" -> daily.questionId,
"content" -> daily.content, "content" -> daily.content,
"likes" -> daily.likes, "usersLiked" -> daily.usersLiked,
"createdAt" -> daily.createdAt, "createdAt" -> daily.createdAt,
"updatedAt" -> daily.updatedAt "updatedAt" -> daily.updatedAt
) )
...@@ -105,7 +107,7 @@ object DailyRepository { ...@@ -105,7 +107,7 @@ object DailyRepository {
document.getObjectId("user_id"), document.getObjectId("user_id"),
document.getObjectId("question_id"), document.getObjectId("question_id"),
document.getString("content"), document.getString("content"),
document.getInteger("likes"), document.getList("usersLiked", classOf[ObjectId]).asScala.toSeq,
document.getDate("createdAt"), document.getDate("createdAt"),
document.getDate("updatedAt") document.getDate("updatedAt")
) )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment