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