From d35bf9735c8b357c455bc1b931efd48afbc3aee0 Mon Sep 17 00:00:00 2001 From: efim Date: Wed, 28 Jun 2023 15:35:34 +0000 Subject: [PATCH] feat(13): starting simple web server --- .../main/scala/testimonialsgrid/Main.scala | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/13-testimonials-grid-section/src/main/scala/testimonialsgrid/Main.scala b/13-testimonials-grid-section/src/main/scala/testimonialsgrid/Main.scala index 78c7c60..2aa0ce8 100644 --- a/13-testimonials-grid-section/src/main/scala/testimonialsgrid/Main.scala +++ b/13-testimonials-grid-section/src/main/scala/testimonialsgrid/Main.scala @@ -1,6 +1,7 @@ package testimonialsgrid import mainargs.{main, arg, ParserForMethods} +import cask.main.Routes object Main { @main def run( @@ -9,10 +10,28 @@ object Main { @arg(name = "host", doc = "Host on which server will start serving.") hostArg: String = "localhost" ): Unit = { - val a = 1 println(s"Will start server on ${hostArg}:${portArg}") + val server = new cask.Main { + override def allRoutes: Seq[Routes] = Seq(AppRoutes()) + override def port: Int = portArg + override def host: String = hostArg + } + server.main(Array.empty) } def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args) + case class AppRoutes()(implicit cc: castor.Context, log: cask.Logger) extends cask.Routes { + @cask.get("/") + def index() = { + cask.Response("Hello") + } + @cask.staticFiles("/dist") + def distFiles() = "dist" + @cask.staticFiles("/public") + def publicFiles() = "public" + + initialize() + } + }