From b567284354ff38e77bc38745054c5dd0fcc302b9 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Wed, 15 Feb 2017 23:04:03 +0100
Subject: [PATCH] Add Account POST, PUT routes

---
 .../server/server/account/AccountPost.scala   | 28 +++++++++++++++
 .../server/server/account/AccountPut.scala    | 35 +++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala

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
new file mode 100644
index 0000000..4fc8c5a
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPost.scala
@@ -0,0 +1,28 @@
+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 spark.{Request, Response, Route, Spark}
+
+/**
+  * Created by tobias on 15.02.17.
+  */
+class AccountPost(accountDao: Dao[Account, Int]) extends Route {
+
+	override def handle(request: Request, response: Response): AnyRef = {
+		val username = request.queryMap().get("username").value
+		val password = request.queryMap().get("password").value
+
+		val account = new Account(username, password)
+		try {
+			accountDao.create(account)
+		} catch {
+			case e: SQLException => Spark.halt(409, "username not allowed")
+		}
+
+		"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
new file mode 100644
index 0000000..a40fd22
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/account/AccountPut.scala
@@ -0,0 +1,35 @@
+package de.tobias.playpad.server.server.account
+
+import com.j256.ormlite.dao.Dao
+import de.tobias.playpad.server.account.Account
+import spark.{Request, Response, Route}
+
+/**
+  * Created by tobias on 15.02.17.
+  */
+class AccountPut(accountDao: Dao[Account, Int]) extends Route {
+
+	override def handle(request: Request, response: Response): AnyRef = {
+		try {
+			print(request.queryParams())
+			val username = request.queryMap().get("username").value
+			val oldPassword = request.queryMap().get("old_password").value
+			val newPassword = request.queryMap().get("new_password").value
+
+			val accounts = accountDao.queryForEq("username", username)
+
+			if (accounts.size() == 1) {
+				val account = accounts.get(0)
+				if (account.password.equals(oldPassword)) {
+					account.password = newPassword
+					accountDao.update(account)
+				}
+			}
+		} catch {
+			case e: Exception => e.printStackTrace()
+		}
+
+		""
+	}
+
+}
-- 
GitLab