From 2f57242df7b39249fd87a2cc9c486286675a76e1 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Fri, 17 Feb 2017 20:07:13 +0100 Subject: [PATCH] Improved json response handling, add own equals method for session --- .../tobias/playpad/server/account/Session.scala | 16 ++++++++++++++++ .../server/server/account/SessionGet.scala | 2 +- .../server/transformer/JsonTransformer.scala | 8 ++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/scala/de/tobias/playpad/server/account/Session.scala b/src/main/scala/de/tobias/playpad/server/account/Session.scala index dbece99..e3cbb65 100644 --- a/src/main/scala/de/tobias/playpad/server/account/Session.scala +++ b/src/main/scala/de/tobias/playpad/server/account/Session.scala @@ -26,6 +26,22 @@ import scala.util.Random def getId: Int = id def getAccount: Account = account + + + def canEqual(other: Any): Boolean = other.isInstanceOf[Session] + + override def equals(other: Any): Boolean = other match { + case that: Session => + (that canEqual this) && + id == that.id && + key == that.key + case _ => false + } + + override def hashCode(): Int = { + val state = Seq(id, key) + state.map(_.hashCode()).foldLeft(0)((a, b) => 31 * a + b) + } } object Session { diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala index 2484996..9ffe9e4 100644 --- a/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala +++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionGet.scala @@ -28,7 +28,7 @@ class SessionGet(accountDao: Dao[Account, Int]) extends Route { jsonObj.addProperty("createDate", session.createDate.getTime) array.add(jsonObj) }) - return array.toString + return array } } diff --git a/src/main/scala/de/tobias/playpad/server/transformer/JsonTransformer.scala b/src/main/scala/de/tobias/playpad/server/transformer/JsonTransformer.scala index d482bf5..1480a11 100644 --- a/src/main/scala/de/tobias/playpad/server/transformer/JsonTransformer.scala +++ b/src/main/scala/de/tobias/playpad/server/transformer/JsonTransformer.scala @@ -1,6 +1,6 @@ package de.tobias.playpad.server.transformer -import com.google.gson.Gson +import com.google.gson.{Gson, JsonObject} import spark.ResponseTransformer /** @@ -11,6 +11,10 @@ class JsonTransformer extends ResponseTransformer { val gson = new Gson() override def render(o: scala.Any): String = { - gson.toJson(o) + if (!o.isInstanceOf[JsonObject]) { + gson.toJson(o) + } else { + o.toString + } } } -- GitLab