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 0000000000000000000000000000000000000000..5483dd5c4c18c697bdd453f77e22149a4eb100ec --- /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 0000000000000000000000000000000000000000..2a44ddff8bfb2e24b0f8a5712029cab42681645e --- /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 4fc8c5a90030f044de142b59ab479736f9ac2975..8082e431f802a278b4e0bacb135d1f494d8d43c1 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 a40fd229db6e2a912237fe5092344716d090b72b..d8e7b635942a587c74e898d0358d52f9d5146e8c 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 c3bd25e482dfe233eaf63439a5bf46a1b8749f9c..69fd68d49a84b63b8cc1261551dc0f0c3f78d25b 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 6a9518565a7036e27091a1c6dfbc9221a63c6214..24849960815b6cc081c8dbeaca84a0883f65fbce 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 3d693836bb088335e0bd3ece720ff43df1ac833a..4b3fe88ff8ff6eaa7d9cc9ba43cd6bc336101b21 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 075adc7dd5cee802d9c42855b50b4cafdd160048..c222880949bd818c1ca5e6d96dd55681895a04d4 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 }