From 80276e2e5b051ff774b0503ab02d5b1a9cee1b62 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Thu, 16 Feb 2017 16:08:39 +0100 Subject: [PATCH] Improve response messages --- .../tobias/playpad/server/server/Result.scala | 16 ++++++++++++++++ .../tobias/playpad/server/server/Status.scala | 8 ++++++++ .../server/server/account/AccountPost.scala | 5 +++-- .../server/server/account/AccountPut.scala | 8 ++++++-- .../server/server/account/SessionDelete.scala | 7 ++++--- .../server/server/account/SessionGet.scala | 5 +++-- .../server/server/account/SessionPost.scala | 18 ++++++++++++++++-- .../server/server/plugin/PluginGet.scala | 3 ++- 8 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 src/main/scala/de/tobias/playpad/server/server/Result.scala create mode 100644 src/main/scala/de/tobias/playpad/server/server/Status.scala diff --git a/src/main/scala/de/tobias/playpad/server/server/Result.scala b/src/main/scala/de/tobias/playpad/server/server/Result.scala new file mode 100644 index 0000000..5483dd5 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/Result.scala @@ -0,0 +1,16 @@ +package de.tobias.playpad.server.server + +/** + * Created by tobias on 16.02.17. + */ +class Result { + + var status: Status.Value = _ + var message: String = _ + + def this(status: Status.Value, message: String = "") { + this() + this.status = status + this.message = message + } +} diff --git a/src/main/scala/de/tobias/playpad/server/server/Status.scala b/src/main/scala/de/tobias/playpad/server/server/Status.scala new file mode 100644 index 0000000..2a44ddf --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/Status.scala @@ -0,0 +1,8 @@ +package de.tobias.playpad.server.server + +/** + * Created by tobias on 16.02.17. + */ +object Status extends Enumeration { + val OK, ERROR = Value +} diff --git a/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala b/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala index 4fc8c5a..8082e43 100644 --- a/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala +++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala @@ -4,6 +4,7 @@ import java.sql.SQLException import com.j256.ormlite.dao.Dao import de.tobias.playpad.server.account.Account +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route, Spark} /** @@ -19,10 +20,10 @@ class AccountPost(accountDao: Dao[Account, Int]) extends Route { try { accountDao.create(account) } catch { - case e: SQLException => Spark.halt(409, "username not allowed") + case e: SQLException => return new Result(Status.ERROR) } - "created" + new Result(Status.OK, "created") } } diff --git a/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala b/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala index a40fd22..d8e7b63 100644 --- a/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala +++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala @@ -1,7 +1,10 @@ package de.tobias.playpad.server.server.account +import java.sql.SQLException + import com.j256.ormlite.dao.Dao import de.tobias.playpad.server.account.Account +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route} /** @@ -23,13 +26,14 @@ class AccountPut(accountDao: Dao[Account, Int]) extends Route { if (account.password.equals(oldPassword)) { account.password = newPassword accountDao.update(account) + return new Result(Status.OK) } } } catch { - case e: Exception => e.printStackTrace() + case e: SQLException => return new Result(Status.ERROR) } - "" + new Result(Status.ERROR) } } diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala index c3bd25e..69fd68d 100644 --- a/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala +++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionDelete.scala @@ -1,7 +1,8 @@ package de.tobias.playpad.server.server.account import com.j256.ormlite.dao.Dao -import de.tobias.playpad.server.account.{Account, Session} +import de.tobias.playpad.server.account.Account +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route} /** @@ -21,11 +22,11 @@ class SessionDelete(accountDao: Dao[Account, Int]) extends Route { if (account.password.equals(password)) { account.sessions.removeIf(s => s.key.equals(key)) accountDao.update(account) - return "deleted" + return new Result(Status.OK, "deleted") } } - null + new Result(Status.ERROR) } } 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 6a95185..2484996 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 @@ -2,7 +2,8 @@ package de.tobias.playpad.server.server.account import com.google.gson.{JsonArray, JsonObject} import com.j256.ormlite.dao.Dao -import de.tobias.playpad.server.account.{Account, Session} +import de.tobias.playpad.server.account.Account +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route} /** @@ -31,7 +32,7 @@ class SessionGet(accountDao: Dao[Account, Int]) extends Route { } } - null + new Result(Status.ERROR) } } diff --git a/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala b/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala index 3d69383..4b3fe88 100644 --- a/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala +++ b/src/main/scala/de/tobias/playpad/server/server/account/SessionPost.scala @@ -2,6 +2,7 @@ package de.tobias.playpad.server.server.account import com.j256.ormlite.dao.Dao import de.tobias.playpad.server.account.{Account, Session} +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route} /** @@ -24,11 +25,24 @@ class SessionPost(accountDao: Dao[Account, Int]) extends Route { account.sessions.add(session) accountDao.update(account) - return randomKey + return new SessionPostResult(Status.OK, randomKey) } } - null + new Result(Status.ERROR) + } + + private class SessionPostResult { + var status: Status.Value = _ + var message: String = _ + var key: String = _ + + def this(status: Status.Value, key: String, message: String = "") { + this() + this.status = status + this.message = message + this.key = key + } } } diff --git a/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala b/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala index 075adc7..c222880 100644 --- a/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala +++ b/src/main/scala/de/tobias/playpad/server/server/plugin/PluginGet.scala @@ -3,6 +3,7 @@ package de.tobias.playpad.server.server.plugin import com.google.gson.Gson import com.j256.ormlite.dao.Dao import de.tobias.playpad.server.plugin.Plugin +import de.tobias.playpad.server.server.{Result, Status} import spark.{Request, Response, Route, Spark} /** @@ -15,7 +16,7 @@ class PluginGet(dao: Dao[Plugin, Int]) extends Route { override def handle(request: Request, response: Response): AnyRef = { val plugin = dao.queryForId(request.params(":id").toInt) if (plugin == null) { - Spark.halt(400, "Bad request") + return new Result(Status.ERROR, "Bad request") } plugin } -- GitLab