From a2418a810cf7338dbd1119cbd7d95844699b06b8 Mon Sep 17 00:00:00 2001 From: efim Date: Sat, 8 Jul 2023 18:27:21 +0000 Subject: [PATCH] init(15): server returns dummy index from template --- 15-multi-step-form/.scalafmt.conf | 2 ++ .../src/main/resources/public/lalala.txt | 1 + .../src/main/resources/templates/index.html | 33 +++++++++++++++++++ .../src/main/scala/multistepform/Main.scala | 6 ++++ .../src/main/scala/multistepform/Routes.scala | 31 +++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 15-multi-step-form/.scalafmt.conf create mode 100644 15-multi-step-form/src/main/resources/public/lalala.txt create mode 100644 15-multi-step-form/src/main/resources/templates/index.html create mode 100644 15-multi-step-form/src/main/scala/multistepform/Routes.scala diff --git a/15-multi-step-form/.scalafmt.conf b/15-multi-step-form/.scalafmt.conf new file mode 100644 index 0000000..db004c6 --- /dev/null +++ b/15-multi-step-form/.scalafmt.conf @@ -0,0 +1,2 @@ +version = "3.7.3" +runner.dialect = scala3 \ No newline at end of file diff --git a/15-multi-step-form/src/main/resources/public/lalala.txt b/15-multi-step-form/src/main/resources/public/lalala.txt new file mode 100644 index 0000000..47823e8 --- /dev/null +++ b/15-multi-step-form/src/main/resources/public/lalala.txt @@ -0,0 +1 @@ +hello from the resource file! diff --git a/15-multi-step-form/src/main/resources/templates/index.html b/15-multi-step-form/src/main/resources/templates/index.html new file mode 100644 index 0000000..38ad512 --- /dev/null +++ b/15-multi-step-form/src/main/resources/templates/index.html @@ -0,0 +1,33 @@ + + + + + + TEst + + + + + + + + + + +
+

Hello!

+ +

+ into the template +

+
+
+ + + diff --git a/15-multi-step-form/src/main/scala/multistepform/Main.scala b/15-multi-step-form/src/main/scala/multistepform/Main.scala index ed1ef30..2aa6a06 100644 --- a/15-multi-step-form/src/main/scala/multistepform/Main.scala +++ b/15-multi-step-form/src/main/scala/multistepform/Main.scala @@ -10,6 +10,12 @@ object Main { hostArg: String = "localhost" ): Unit = { println(s"Will start server on ${hostArg}:${portArg}") + val server = new cask.Main { + override def allRoutes: Seq[cask.main.Routes] = Seq(Routes()) + override def port: Int = portArg + override def host: String = hostArg + } + server.main(Array.empty) } def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args) diff --git a/15-multi-step-form/src/main/scala/multistepform/Routes.scala b/15-multi-step-form/src/main/scala/multistepform/Routes.scala new file mode 100644 index 0000000..83c376c --- /dev/null +++ b/15-multi-step-form/src/main/scala/multistepform/Routes.scala @@ -0,0 +1,31 @@ +package multistepform + +import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver +import org.thymeleaf.TemplateEngine +import org.thymeleaf.context.Context + +case class Routes()(implicit cc: castor.Context, log: cask.Logger) + extends cask.Routes { + val templateResolver = new ClassLoaderTemplateResolver() + templateResolver.setPrefix("templates/"); + templateResolver.setSuffix(".html") + templateResolver.setTemplateMode("HTML5") + + val templateEngine = new TemplateEngine() + templateEngine.setTemplateResolver(templateResolver) + + @cask.get("/") + def getIndex() = { + val context = new Context() + val indexPage = templateEngine.process("index", context) + cask.Response( + indexPage, + headers = Seq("Content-Type" -> "text/html;charset=UTF-8") + ) + } + + @cask.staticResources("/public") + def publicFiles() = "public" + + initialize() +}