From 2abb132234546e61bb0aff3897dc49e72ea84f5d Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sun, 5 Nov 2023 17:59:38 +0100 Subject: Working sync proxy --- .../Controllers/Extensions/DebugController.cs | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 MxApiExtensions/Controllers/Extensions/DebugController.cs (limited to 'MxApiExtensions/Controllers/Extensions/DebugController.cs') 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 _roomInfoCache = new(); + + public DebugController(ILogger logger, MxApiExtensionsConfiguration config, AuthenticationService authenticationService, + AuthenticatedHomeserverProviderService authenticatedHomeserverProviderService) { + _logger = logger; + _config = config; + _authenticationService = authenticationService; + } + + [HttpGet("debug")] + public async Task 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 + }; + } +} -- cgit 1.5.1