aboutsummaryrefslogtreecommitdiff
path: root/mavigator-server/src/main/scala/mavigator/Router.scala
diff options
context:
space:
mode:
Diffstat (limited to 'mavigator-server/src/main/scala/mavigator/Router.scala')
-rw-r--r--mavigator-server/src/main/scala/mavigator/Router.scala92
1 files changed, 92 insertions, 0 deletions
diff --git a/mavigator-server/src/main/scala/mavigator/Router.scala b/mavigator-server/src/main/scala/mavigator/Router.scala
new file mode 100644
index 0000000..bd54422
--- /dev/null
+++ b/mavigator-server/src/main/scala/mavigator/Router.scala
@@ -0,0 +1,92 @@
+package mavigator
+
+import akka.actor._
+import akka.stream._
+import akka.stream.scaladsl._
+import akka.http.scaladsl._
+import akka.http.scaladsl.model._
+import akka.http.scaladsl.server._
+
+
+class Router(system: ActorSystem) {
+
+ import Directives._
+
+ val route: Route = (
+ path("info") {
+ get {
+ val f: play.twirl.api.Html = mavigator.views.html.index()
+ complete(f.body)
+ }
+ } ~
+ path("dashboard" / IntNumber) { id =>
+ get {
+ //get dashboard for remote sys id
+ ???
+ }
+ } ~
+ path("mavlink") {
+ get {
+ /*extractUpgradeToWebsocket{ upgrade =>
+ //upgrade.handleMessagesWith(inSink: Sink[Message, _$3], outSource: Source[Message, _$4])
+ ???
+ }*/
+ handleWebsocketMessages((new MavlinkWebsocket(system)).wsflow)
+ }
+ } ~
+ pathPrefix("assets") {
+ get {
+ encodeResponse {
+ getFromResourceDirectory("assets")
+ }
+ }
+ } ~
+ pathEndOrSingleSlash {
+ get {
+ complete("hello world")
+ }
+ }
+ )
+
+}
+
+import akka.http.scaladsl.model.ws._
+import akka.stream.scaladsl._
+
+object SocketService {
+
+ /*
+ val out: Source[OutgoingMessage, ActorRef] = Source.actorRef[OutgoingMessage](0, OverflowStrategy.fail)
+ val in = Sink.actorRef(ref: ActorRef, onCompleteMessage: Any)
+ */
+
+
+ /*
+ Flow[Message, Message, _] { implicit builder =>
+
+ val in: Flow[Message, IncomingMessage, _] = Flow[Message].map {
+ case TextMessage.Strict(txt) => IncomingMessage(s"frpm websocket $txt")
+ case _ => ???
+ }
+
+ val out: Flow[OutgoingMessage, Message, _] = Flow[OutgoingMessage].map {
+ case OutgoingMessage(txt) => TextMessage(s"to websocket $text")
+ }
+
+ val chatActorSink = Sink.actorRef[ChatEvent](chatRoomActor, UserLeft(user))
+
+ }
+ */
+}
+
+/*
+object EchoService {
+
+ val flow: Flow[Message, Message, _] = Flow[Message].map {
+ case TextMessage.Strict(txt) => TextMessage("ECHO: " + txt)
+ case _ => TextMessage("Message type unsupported")
+ }
+
+}
+ */
+