using Microsoft.AspNetCore.Mvc; namespace DorkNet.Server.Controllers.Geo; /// /// geo.{apex}/v1/regions — region/server geography. Returns a single /// configured region (we don't actually run multi-region; the watch's /// region picker just needs one entry to populate the dropdown). /// /// The /v1/ping endpoint that previously lived here was /// removed during the [Host]-strip refactor — both geo and ns /// answered the same path (NsController.Ping is the canonical /// one), and with host filters gone the two routes would have /// ambiguous-matched on any subdomain. NsController wins because /// its ping body carries the timestamp the keep-alive loop reads; /// the geo version returned a bare {Ok:true} that nothing consumed. /// [ApiController] public class GeoController(IConfiguration config) : ControllerBase { [HttpGet("/v1/regions")] public ActionResult> GetRegions() { var region = config["Photon:CloudRegion"] ?? "us"; return Ok(new[] { new { Id = region, Name = region.ToUpperInvariant(), Ping = 50 }, }); } }