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 b3973d728171651f45c713337440f27de76d628a..8f93ec9e49af5a69fd73e0f7324d2d69d1cfaef5 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 0000000000000000000000000000000000000000..bf2365eeb8d21041cf7576edbd6fc1a11602afb1 --- /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") + } + } +}