diff --git a/src/Argon.Api/Controllers/MetadataController.cs b/src/Argon.Api/Controllers/MetadataController.cs index 6d6ca043..8735a893 100644 --- a/src/Argon.Api/Controllers/MetadataController.cs +++ b/src/Argon.Api/Controllers/MetadataController.cs @@ -1,39 +1,38 @@ -// namespace Argon.Api.Controllers; -// -// using Microsoft.AspNetCore.Authorization; -// using Microsoft.AspNetCore.Mvc; -// -// [ApiController] -// public class MetadataController : ControllerBase -// { -// [Route("/cfg.json")] -// [AllowAnonymous] -// public ValueTask GetHead() -// { -// return new ValueTask(new HeadRoutingConfig( -// $"{GlobalVersion.FullSemVer}.{GlobalVersion.ShortSha}", -// "api.argon.gl", -// "argon-f14ic5ia.livekit.cloud", -// [ -// new RegionalNode("cdn-ru1.argon.gl", "ru1"), -// new RegionalNode("cdn-ru2.argon.gl", "ru1"), -// new RegionalNode("cdn-as1.argon.gl", "as1") -// ], [ -// new FeatureFlag("dev.window", true), -// new FeatureFlag("user.allowServerCreation", true) -// ])); -// } -// } -// -// public record HeadRoutingConfig( -// string version, -// string masterEndpoint, -// string webRtcEndpoint, -// List cdnAddresses, -// List features -// ); -// -// public record RegionalNode(string url, string code); -// -// public record FeatureFlag(string code, bool enabled); +namespace Argon.Api.Controllers; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +[ApiController] +public class MetadataController : ControllerBase +{ + [Route("/cfg.json")] + [AllowAnonymous] + public ValueTask GetHead() + { + return new ValueTask(new HeadRoutingConfig( + $"{GlobalVersion.FullSemVer}.{GlobalVersion.ShortSha}", + "api.argon.gl", + "argon-f14ic5ia.livekit.cloud", + [ + new RegionalNode("cdn-ru1.argon.gl", "ru1"), + new RegionalNode("cdn-ru2.argon.gl", "ru1"), + new RegionalNode("cdn-as1.argon.gl", "as1") + ], [ + new FeatureFlag("dev.window", true), + new FeatureFlag("user.allowServerCreation", true) + ])); + } +} + +public record HeadRoutingConfig( + string version, + string masterEndpoint, + string webRtcEndpoint, + List cdnAddresses, + List features +); + +public record RegionalNode(string url, string code); + +public record FeatureFlag(string code, bool enabled); \ No newline at end of file diff --git a/src/Argon.Api/Program.cs b/src/Argon.Api/Program.cs index 1f14c1aa..5a47f04e 100644 --- a/src/Argon.Api/Program.cs +++ b/src/Argon.Api/Program.cs @@ -1,3 +1,6 @@ +using ActualLab.Fusion; +using ActualLab.Rpc; +using ActualLab.Rpc.Server; using Argon.Api; using Argon.Api.Entities; using Argon.Api.Extensions; @@ -16,7 +19,7 @@ builder.AddNpgsqlDbContext("DefaultConnection"); builder.Services.AddSingleton(); builder.Services.AddControllers(); -// builder.Services.AddFusion(RpcServiceMode.Server, true); +builder.Services.AddFusion(RpcServiceMode.Server, true); // .Rpc.AddServer() // .AddServer() // .AddWebSocketServer(true); @@ -35,6 +38,6 @@ app.MapControllers(); app.MapDefaultEndpoints(); app.UseWebSockets(); -// app.MapRpcWebSocketServer(); +app.MapRpcWebSocketServer(); app.MapGet("/", () => new { version = $"{GlobalVersion.FullSemVer}.{GlobalVersion.ShortSha}" }); await app.WarpUp().RunAsync(); \ No newline at end of file