diff --git a/conf/base.conf b/conf/base.conf index ddf79f02ee40..5a1706d57c53 100644 --- a/conf/base.conf +++ b/conf/base.conf @@ -545,6 +545,7 @@ challenge { history.message.ttl = 30 seconds uid.timeout = 7 seconds max_playing = ${setup.max_playing} + net.base_url = ${net.base_url} } evalCache { collection.eval_cache = eval_cache diff --git a/modules/challenge/src/main/Env.scala b/modules/challenge/src/main/Env.scala index 64fb7f63ed4c..a5520b0664dd 100644 --- a/modules/challenge/src/main/Env.scala +++ b/modules/challenge/src/main/Env.scala @@ -31,6 +31,7 @@ final class Env( val UidTimeout = config duration "uid.timeout" val SocketTimeout = config duration "socket.timeout" val MaxPlaying = config getInt "max_playing" + val NetBaseUrl = config getString "net.base_url" } import settings._ @@ -79,7 +80,7 @@ final class Env( maxPerUser = MaxPerUser ) - lazy val jsonView = new JsonView(lightUser, isOnline) + lazy val jsonView = new JsonView(lightUser, isOnline, NetBaseUrl) scheduler.future(3 seconds, "sweep challenges") { api.sweep diff --git a/modules/challenge/src/main/JsonView.scala b/modules/challenge/src/main/JsonView.scala index be0796b000e0..2fb30d9f0bd9 100644 --- a/modules/challenge/src/main/JsonView.scala +++ b/modules/challenge/src/main/JsonView.scala @@ -9,7 +9,8 @@ import lidraughts.socket.UserLagCache final class JsonView( getLightUser: lidraughts.common.LightUser.GetterSync, - isOnline: lidraughts.user.User.ID => Boolean + isOnline: lidraughts.user.User.ID => Boolean, + baseUrl: String ) { import lidraughts.game.JsonView._ @@ -28,6 +29,7 @@ final class JsonView( def apply(direction: Option[Direction])(c: Challenge): JsObject = Json.obj( "id" -> c.id, + "url" -> s"$baseUrl/${c.id}", "status" -> c.status.name, "challenger" -> c.challengerUser, "destUser" -> c.destUser,