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