Working sync proxy
1 files changed, 45 insertions, 0 deletions
diff --git a/MxApiExtensions/Controllers/Extensions/DebugController.cs b/MxApiExtensions/Controllers/Extensions/DebugController.cs
new file mode 100644
index 0000000..79ed2f0
--- /dev/null
+++ b/MxApiExtensions/Controllers/Extensions/DebugController.cs
@@ -0,0 +1,45 @@
+using System.Collections.Concurrent;
+using Microsoft.AspNetCore.Mvc;
+using MxApiExtensions.Classes.LibMatrix;
+using MxApiExtensions.Services;
+
+namespace MxApiExtensions.Controllers.Extensions;
+
+[ApiController]
+[Route("/")]
+public class DebugController : ControllerBase {
+ private readonly ILogger _logger;
+ private readonly MxApiExtensionsConfiguration _config;
+ private readonly AuthenticationService _authenticationService;
+
+ private static ConcurrentDictionary<string, RoomInfoEntry> _roomInfoCache = new();
+
+ public DebugController(ILogger<ProxyConfigurationController> logger, MxApiExtensionsConfiguration config, AuthenticationService authenticationService,
+ AuthenticatedHomeserverProviderService authenticatedHomeserverProviderService) {
+ _logger = logger;
+ _config = config;
+ _authenticationService = authenticationService;
+ }
+
+ [HttpGet("debug")]
+ public async Task<object?> GetDebug() {
+ var mxid = await _authenticationService.GetMxidFromToken();
+ if(!_config.Admins.Contains(mxid)) {
+ _logger.LogWarning("Got debug request for {user}, but they are not an admin", mxid);
+ Response.StatusCode = StatusCodes.Status403Forbidden;
+ Response.ContentType = "application/json";
+
+ await Response.WriteAsJsonAsync(new {
+ ErrorCode = "M_FORBIDDEN",
+ Error = "You are not an admin"
+ });
+ await Response.CompleteAsync();
+ return null;
+ }
+
+ _logger.LogInformation("Got debug request for {user}", mxid);
+ return new {
+ SyncStates = SyncController._syncStates
+ };
+ }
+}
|