From 69b675cc6a3146edf9a35429bb146d603d48d441 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Fri, 2 Aug 2019 22:06:41 +0200 Subject: [PATCH] Change plugin download --- download/test.txt | 1 + .../de/tobias/playpad/PlayPadServer.scala | 6 ++--- .../playpad/server/plugin/PluginRawGet.scala | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 download/test.txt create mode 100644 src/main/scala/de/tobias/playpad/server/plugin/PluginRawGet.scala diff --git a/download/test.txt b/download/test.txt new file mode 100644 index 0000000..48b83b8 --- /dev/null +++ b/download/test.txt @@ -0,0 +1 @@ +ABC \ No newline at end of file diff --git a/src/main/scala/de/tobias/playpad/PlayPadServer.scala b/src/main/scala/de/tobias/playpad/PlayPadServer.scala index d5bf73b..9ad6938 100644 --- a/src/main/scala/de/tobias/playpad/PlayPadServer.scala +++ b/src/main/scala/de/tobias/playpad/PlayPadServer.scala @@ -13,7 +13,7 @@ import de.tobias.playpad.model.account.{Account, Session} import de.tobias.playpad.model.plugin.Plugin import de.tobias.playpad.server.SqlHelper import de.tobias.playpad.server.account._ -import de.tobias.playpad.server.plugin.{PluginGet, PluginList} +import de.tobias.playpad.server.plugin.{PluginGet, PluginList, PluginRawGet} import de.tobias.playpad.server.project.sync.ProjectSyncHandler import de.tobias.playpad.server.project.{ProjectDelete, ProjectGet, ProjectList, ProjectPost} import de.tobias.playpad.transformer.JsonTransformer @@ -82,9 +82,6 @@ object PlayPadServer extends App { port(settings.server_port) threadPool(8, 2, 60 * 60 * 1000) - val externalPath = Paths.get(settings.download_folder).toAbsolutePath.toString - externalStaticFileLocation(externalPath) - if (settings.server_secure) { secure(settings.server_keystore_path, settings.server_keystore_password, null, null) } @@ -102,6 +99,7 @@ object PlayPadServer extends App { // Plugins get("/plugins/:id", new PluginGet(pluginDao), transformer) + get("/plugins/raw/:id", new PluginRawGet(pluginDao, settings)) get("/plugins", new PluginList(pluginDao), transformer) // Account diff --git a/src/main/scala/de/tobias/playpad/server/plugin/PluginRawGet.scala b/src/main/scala/de/tobias/playpad/server/plugin/PluginRawGet.scala new file mode 100644 index 0000000..d5f487e --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/plugin/PluginRawGet.scala @@ -0,0 +1,27 @@ +package de.tobias.playpad.server.plugin + +import java.nio.file.{Files, Paths} + +import com.google.gson.Gson +import com.j256.ormlite.dao.Dao +import de.tobias.playpad.model.plugin.Plugin +import de.tobias.playpad.server.{Result, Status} +import de.tobias.playpad.utils.settings.Settings +import spark.{Request, Response, Route} + +/** + * Created by tobias on 05.02.17. + */ +class PluginRawGet(dao: Dao[Plugin, Int], settings: Settings) extends Route { + + val gson = new Gson() + + override def handle(request: Request, response: Response): AnyRef = { + val plugin = dao.queryForId(request.params(":id").toInt) + if (plugin == null) { + return new Result(Status.ERROR, "Bad request") + } + val path = Paths.get(settings.download_folder, plugin.path) + Files.readAllBytes(path) + } +} -- GitLab