diff --git a/Core/src/org/tbasket/config/FileServerConfig.scala b/Core/src/org/tbasket/config/FileServerConfig.scala index 2045802..c6a7104 100644 --- a/Core/src/org/tbasket/config/FileServerConfig.scala +++ b/Core/src/org/tbasket/config/FileServerConfig.scala @@ -63,7 +63,7 @@ final class FileServerConfig private(userProperties: Properties, schema: Propert override val databaseConfigName: String = getPropertySafe("database.prefix") - override def pagesLocation: Path = Path.of(getPropertySafe("pages.location")) + override def pagesLocation: Option[Path] = Some(Path.of(getPropertySafe("pages.location"))) private def schemaString = { schema.stringPropertyNames() diff --git a/Core/src/org/tbasket/config/ServerConfig.scala b/Core/src/org/tbasket/config/ServerConfig.scala index 11b7690..45da3d9 100644 --- a/Core/src/org/tbasket/config/ServerConfig.scala +++ b/Core/src/org/tbasket/config/ServerConfig.scala @@ -18,6 +18,6 @@ trait ServerConfig { def databaseConfigName: String - def pagesLocation: Path + def pagesLocation: Option[Path] } diff --git a/Core/src/org/tbasket/dispatch/WebService.scala b/Core/src/org/tbasket/dispatch/WebService.scala index c5aed5c..63c610a 100644 --- a/Core/src/org/tbasket/dispatch/WebService.scala +++ b/Core/src/org/tbasket/dispatch/WebService.scala @@ -9,7 +9,7 @@ import zio.stream.ZStream import java.nio.file.{Files, Path} import scala.collection.mutable -class WebService(pagesLocation: Path) { +class WebService(pagesLocation: Option[Path]) { private val resources = resolveResources @@ -52,8 +52,7 @@ class WebService(pagesLocation: Path) { } } } - - resolveAll(pagesLocation) + pagesLocation.foreach(resolveAll) map.toMap } } diff --git a/Core/src/org/tbasket/handler/HandlerUtils.scala b/Core/src/org/tbasket/handler/HandlerUtils.scala index b6016af..294464a 100644 --- a/Core/src/org/tbasket/handler/HandlerUtils.scala +++ b/Core/src/org/tbasket/handler/HandlerUtils.scala @@ -26,8 +26,8 @@ object HandlerUtils { def parseRequestForm(body: Body) = (for - decoded <- body.asString.map(str => URLDecoder.decode(str.stripPrefix("&"), StandardCharsets.UTF_8.name())) - params = decoded.split('&').collect { case s"$k=$v" => (k, v)}.toMap + decoded <- body.asString.map(str => URLDecoder.decode(str, StandardCharsets.UTF_8.name())) + params = decoded.split('&').collect { case s"$k=$v" => (k.stripPrefix("?"), v)}.toMap yield params) .mapError(s => InvalidRequest("Invalid request body", s.getMessage)) diff --git a/tests/src/org/tbasket/test/TestServerConfig.scala b/tests/src/org/tbasket/test/TestServerConfig.scala index 7502647..b1d68b3 100644 --- a/tests/src/org/tbasket/test/TestServerConfig.scala +++ b/tests/src/org/tbasket/test/TestServerConfig.scala @@ -29,5 +29,5 @@ object TestServerConfig extends ServerConfig { override def databaseConfigName: String = "test-database" - override def pagesLocation: Path = Path.of("www") + override def pagesLocation: Option[Path] = None }