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(
userId: ObjectId,
questionId: ObjectId,
content: String,
likes: Int,
usersLiked: Seq[ObjectId],
createdAt: Date,
updatedAt: Date
)
......@@ -36,7 +36,7 @@ object Daily {
timeout: Int = 4
): Daily = {
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)
Await.result(future, timeout.seconds)
}
......@@ -63,6 +63,8 @@ object Daily {
// Convert from Daily object to JSON (serializing to JSON)
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 formattedCreatedAt: String = dateFormat.format(daily.createdAt)
val formattedUpdatedAt: String = dateFormat.format(daily.updatedAt)
......@@ -72,6 +74,7 @@ object Daily {
"userId" -> JsString(daily.userId.toString()),
"questionId" -> JsString(daily.questionId.toString()),
"content" -> JsString(daily.content),
"usersLiked" -> JsArray(usersLikedAsJsStrings),
"createdAt" -> JsString(formattedCreatedAt),
"updatedAt" -> JsString(formattedUpdatedAt)
)
......@@ -87,5 +90,5 @@ object Daily {
}
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
import scala.concurrent.{Future, Await}
import scala.concurrent.duration._
import scala.collection.JavaConverters._
class DailyRepository extends MongoDBClient {
// Loads the default configuration
......@@ -82,7 +84,7 @@ class DailyRepository extends MongoDBClient {
"user_id" -> daily.userId,
"question_id" -> daily.questionId,
"content" -> daily.content,
"likes" -> daily.likes,
"usersLiked" -> daily.usersLiked,
"createdAt" -> daily.createdAt,
"updatedAt" -> daily.updatedAt
)
......@@ -105,7 +107,7 @@ object DailyRepository {
document.getObjectId("user_id"),
document.getObjectId("question_id"),
document.getString("content"),
document.getInteger("likes"),
document.getList("usersLiked", classOf[ObjectId]).asScala.toSeq,
document.getDate("createdAt"),
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