initial way to run the server:

sbt:backend> assembly
java -jar backend/target/scala-3.2.0/backend-assembly-0.1.0-SNAPSHOT.jar
This commit is contained in:
efim 2023-04-23 18:33:29 +04:00
parent 1f7fdfb387
commit 329dc6e8b2
4 changed files with 11 additions and 13 deletions

View File

@ -22,16 +22,12 @@ object MyHttpService {
val authedRoomRoutes: AuthedRoutes[(PlayerID, RoomID), IO] =
AuthedRoutes.of {
case GET -> Root / subscribe as (playerId, roomId) => {
case GET -> Root / "subscribe" as (playerId, roomId) => {
val send: Stream[IO, WebSocketFrame] =
{
val a = Stream
Stream
.emits(TestModels.testChangesList)
.covary[IO].metered(5.second).map(state => WebSocketFrame.Text(state.asJson.noSpaces))
Stream
.awakeEvery[IO](1.seconds)
.map(_ => WebSocketFrame.Text("text"))
}
val receive: Pipe[IO, WebSocketFrame, Unit] = _.evalMap {
case WebSocketFrame.Text(text, _) => Sync[IO].delay(println(text))
case other => Sync[IO].delay(println(other))
@ -40,13 +36,13 @@ object MyHttpService {
}
case GET -> Root / "vote" / vote as (playerId, roomId) => {
// TODO forward these to the service implementation
Ok(s">> got $vote from $playerId in $roomId")
IO(println(s">> got $vote from $playerId in $roomId")) >> Ok()
}
case GET -> Root / "end-voting" as (playerId, roomId) => {
Ok(s">> got request to end voting from $playerId in $roomId")
IO(println(s">> got request to end voting from $playerId in $roomId")) >> Ok()
}
case GET -> Root / "new-poll" as (playerId, roomId) => {
Ok(s">> got request to start new voting from $playerId in $roomId")
IO(println(s">> got request to start new voting from $playerId in $roomId")) >> Ok()
}
}
@ -55,7 +51,7 @@ object MyHttpService {
val authenticationRoute = HttpRoutes
.of[IO] {
case req @ POST -> Root / login => {
case req @ POST -> Root / "login" => {
for {
data <- req.as[Requests.LogIn]
authResult <- auth.accessRoom(
@ -76,7 +72,6 @@ object MyHttpService {
}
} yield resp
}
case _ => Ok("hello")
}
(authenticationRoute <+> authMiddleware(authedRoomRoutes)).orNotFound

View File

@ -52,7 +52,8 @@ lazy val backend = project
// available for 2.12, 2.13, 3.2
libraryDependencies += "co.fs2" %% "fs2-core" % "3.6.1",
libraryDependencies += "org.typelevel" %% "cats-core" % "2.9.0",
libraryDependencies += "org.typelevel" %% "cats-effect" % "3.4.9"
libraryDependencies += "org.typelevel" %% "cats-effect" % "3.4.9",
assembly / mainClass := Some("industries.sunshine.planningpoker.BackendApp"),
)
.dependsOn(common.jvm)

View File

@ -13,6 +13,7 @@
pkgs.nodejs
pkgs.sbt
pkgs.scalafmt
pkgs.jdk
# pkgs.nodePackages.tailwindcss
# pkgs.nodePackages.postcss
];

View File

@ -1,2 +1,3 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.1")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.1.1")