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

Return JSON intead of string (#19)

parent d6350708
No related branches found
No related tags found
1 merge request!14Add endpoints to manage Dailies
......@@ -24,8 +24,8 @@ class DailyController @Inject()(val controllerComponents: ControllerComponents)
try {
val result: Seq[Daily] = Daily.getAllDailiesAsync()
val jsonResult: Seq[String] = result.map(daily => Daily.toString(daily))
Ok(jsonResult.toString())
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
} catch {
case ex: TimeoutException => BadRequest("Request timed out")
case ex => BadRequest("Exception raised")
......@@ -38,7 +38,8 @@ class DailyController @Inject()(val controllerComponents: ControllerComponents)
try {
// Dummy data
val result = Daily.createDailyAsync(None, new ObjectId("641128f7e80bcd1ba39d04ae"), new ObjectId("641128f7e80bcd1ba39d04ae"), "asddas", 221)
Ok(Daily.toString(result))
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
} catch {
case e: TimeoutException => BadRequest("Request timed out")
case ex => BadRequest("Exception raised")
......
......@@ -6,6 +6,9 @@ import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{Future, Await}
import scala.concurrent.duration._
import play.api.libs.json.Json
import play.api.libs.json.{Json, JsValue, JsString, JsNumber, JsObject, JsArray}
case class Daily(
id: Option[ObjectId],
......@@ -36,10 +39,24 @@ object Daily {
Await.result(future, timeout.seconds)
}
// Convert from Daily object to JSON (serializing to JSON)
def toJson(daily: Daily): JsValue = {
val dailyJson = Seq(
"id" -> JsString(daily.id.getOrElse("").toString()),
"userId" -> JsString(daily.userId.toString()),
"questionId" -> JsString(daily.questionId.toString()),
"content" -> JsString(daily.content),
"likes" -> JsNumber(daily.likes)
)
Json.toJson(JsObject(dailyJson))
}
def getAllDailies(): Future[Seq[Daily]] = {
dailyRepo.getAllDailies()
// Convert from Daily set to JSON (serializing to JSON)
def toJson(dailies: Seq[Daily]): JsValue = {
val dailiesJson = dailies.map(daily => Daily.toJson(daily))
Json.toJson(JsArray(dailiesJson))
}
def toString(daily: Daily): String =
......
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