From 0a6168214442ee10f06cefc569184b1582e04bd8 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Fri, 17 Feb 2017 22:30:48 +0100
Subject: [PATCH] Add project POST

---
 .../playpad/server/server/SqlHelper.scala     |  4 ++
 .../server/server/project/ProjectPost.scala   | 38 +++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/ProjectPost.scala

diff --git a/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala b/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
index b3973d7..8f93ec9 100644
--- a/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
@@ -39,6 +39,10 @@ object SqlHelper {
 			case value: Double =>
 				preparedStatement.setDouble(2, value)
 				preparedStatement.setDouble(3, value)
+			case value: UUID =>
+				preparedStatement.setString(2, value.toString)
+				preparedStatement.setString(3, value.toString)
+
 		}
 
 		preparedStatement
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/ProjectPost.scala b/src/main/scala/de/tobias/playpad/server/server/project/ProjectPost.scala
new file mode 100644
index 0000000..bf2365e
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/ProjectPost.scala
@@ -0,0 +1,38 @@
+package de.tobias.playpad.server.server.project
+
+import java.sql.Connection
+
+import com.google.gson.JsonParser
+import com.j256.ormlite.dao.Dao
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.loader.json.ProjectLoader
+import de.tobias.playpad.server.project.saver.sql.ProjectSaver
+import de.tobias.playpad.server.server.{Result, Status}
+import spark.{Request, Response, Route}
+
+/**
+  * Created by tobias on 17.02.17.
+  */
+class ProjectPost(connection: Connection, sessionDao: Dao[Session, Int]) extends Route {
+	override def handle(request: Request, response: Response): AnyRef = {
+		val sessionKey = request.queryParams("session")
+		val session = Session.getSession(sessionKey, sessionDao)
+		session match {
+			case Some(s) =>
+				val projectParam = request.queryParams("project")
+
+				val json = new JsonParser().parse(projectParam).getAsJsonObject
+
+				val projectLoader = new ProjectLoader
+				val project = projectLoader.load(json)
+				project.accountId = s.getAccount.id
+
+				val projectSaver = new ProjectSaver
+				projectSaver.save(connection, project)
+
+				new Result(Status.OK, "added project")
+			case None =>
+				new Result(Status.ERROR, "session error")
+		}
+	}
+}
-- 
GitLab