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