From 5b4d171ccbde50aa784c9a6b7c432603f1f212c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pit-Claudel?= <clement.pit-claudel@epfl.ch> Date: Fri, 20 Dec 2024 00:42:50 +0100 Subject: [PATCH] client: Move ProtocolInfo to shared/ --- js/src/main/scala/cs214/webapp/client/Pages.scala | 8 ++------ shared/src/main/scala/cs214/webapp/Common.scala | 5 +++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/js/src/main/scala/cs214/webapp/client/Pages.scala b/js/src/main/scala/cs214/webapp/client/Pages.scala index 2cc7a02..797deed 100644 --- a/js/src/main/scala/cs214/webapp/client/Pages.scala +++ b/js/src/main/scala/cs214/webapp/client/Pages.scala @@ -262,16 +262,12 @@ case class AppPage(appId: AppId, uiId: UIId, instanceId: InstanceId, userId: Use ) maybeApp.get - enum ProtocolInfo(secure: String, insecure: String): - case WebSocket extends ProtocolInfo("wss", "ws") - case Http extends ProtocolInfo("https", "http") - def proto: String = if dom.window.location.protocol.startsWith("https") then secure else insecure - def substituteInstanceInfo(endpointTemplate: String, protocolInfo: ProtocolInfo): String = val port = dom.window.location.port val hostname = dom.window.location.hostname + val tls = dom.window.location.protocol.startsWith("https") endpointTemplate - .replace("{{protocol}}", protocolInfo.proto) + .replace("{{protocol}}", protocolInfo.proto(tls)) .replace("{{authority}}", hostname + (if port.nonEmpty then f":$port" else "")) .replace("{{userId}}", URLEncoder.encode(userId, "UTF-8")) diff --git a/shared/src/main/scala/cs214/webapp/Common.scala b/shared/src/main/scala/cs214/webapp/Common.scala index 75a6a81..abf60db 100644 --- a/shared/src/main/scala/cs214/webapp/Common.scala +++ b/shared/src/main/scala/cs214/webapp/Common.scala @@ -45,3 +45,8 @@ object Endpoints: val App = "/app" val WebSocket = "/ws" +/** Known protocols */ +enum ProtocolInfo(secure: String, insecure: String): + case WebSocket extends ProtocolInfo("wss", "ws") + case Http extends ProtocolInfo("https", "http") + def proto(tls: Boolean): String = if tls then secure else insecure -- GitLab