summary refs log tree commit diff
path: root/MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2023-11-09 07:36:02 +0100
committerTheArcaneBrony <myrainbowdash949@gmail.com>2023-11-09 07:36:02 +0100
commit2e8aa30daa4a33fa33622bccb344dfc24483e320 (patch)
treeee08ce4e83382b81a1fbabaac85c763971408bbe /MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs
parentFix some null checks (diff)
downloadMxApiExtensions-2e8aa30daa4a33fa33622bccb344dfc24483e320.tar.xz
Fix sync
Diffstat (limited to 'MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs')
-rw-r--r--MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs31
1 files changed, 16 insertions, 15 deletions
diff --git a/MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs b/MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs

index 47d9899..e882c8a 100644 --- a/MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs +++ b/MxApiExtensions/Controllers/Client/RoomsSendMessageController.cs
@@ -13,23 +13,24 @@ using LibMatrix.Services; using Microsoft.AspNetCore.Mvc; using MxApiExtensions.Classes; using MxApiExtensions.Classes.LibMatrix; +using MxApiExtensions.Extensions; using MxApiExtensions.Services; namespace MxApiExtensions.Controllers; [ApiController] [Route("/")] -public class RoomsSendMessageController(ILogger<LoginController> logger, HomeserverResolverService hsResolver, AuthenticationService auth, MxApiExtensionsConfiguration conf, - AuthenticatedHomeserverProviderService hsProvider) +public class RoomsSendMessageController(ILogger<LoginController> logger, UserContextService userContextService) : ControllerBase { [HttpPut("/_matrix/client/{_}/rooms/{roomId}/send/m.room.message/{txnId}")] public async Task Proxy([FromBody] JsonObject request, [FromRoute] string roomId, [FromRoute] string txnId, string _) { - var hs = await hsProvider.GetHomeserver(); + var uc = await userContextService.GetCurrentUserContext(); + // var hs = await hsProvider.GetHomeserver(); var msg = request.Deserialize<RoomMessageEventContent>(); if (msg is not null && msg.Body.StartsWith("mxae!")) { #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed - handleMxaeCommand(hs, roomId, msg); + handleMxaeCommand(uc, roomId, msg); #pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed await Response.WriteAsJsonAsync(new EventIdResponse() { EventId = "$" + string.Join("", Random.Shared.GetItems("abcdefghijklmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ0123456789".ToCharArray(), 100)) @@ -38,13 +39,14 @@ public class RoomsSendMessageController(ILogger<LoginController> logger, Homeser } else { try { - var resp = await hs.ClientHttpClient.PutAsJsonAsync($"{Request.Path}{Request.QueryString}", request); - var loginResp = await resp.Content.ReadAsStringAsync(); - Response.StatusCode = (int)resp.StatusCode; - Response.ContentType = resp.Content.Headers.ContentType?.ToString() ?? "application/json"; - await Response.StartAsync(); - await Response.WriteAsync(loginResp); - await Response.CompleteAsync(); + var resp = await uc.Homeserver.ClientHttpClient.PutAsJsonAsync($"{Request.Path}{Request.QueryString}", request); + await Response.WriteHttpResponse(resp); + // var loginResp = await resp.Content.ReadAsStringAsync(); + // Response.StatusCode = (int)resp.StatusCode; + // Response.ContentType = resp.Content.Headers.ContentType?.ToString() ?? "application/json"; + // await Response.StartAsync(); + // await Response.WriteAsync(loginResp); + // await Response.CompleteAsync(); } catch (MatrixException e) { await Response.StartAsync(); @@ -54,10 +56,9 @@ public class RoomsSendMessageController(ILogger<LoginController> logger, Homeser } } - private async Task handleMxaeCommand(AuthenticatedHomeserverGeneric hs, string roomId, RoomMessageEventContent msg) { - var syncState = SyncController.SyncStates.GetValueOrDefault(hs.AccessToken); - if (syncState is null) return; - syncState.SendEphemeralTimelineEventInRoom(roomId, new() { + private async Task handleMxaeCommand(UserContextService.UserContext hs, string roomId, RoomMessageEventContent msg) { + if (hs.SyncState is null) return; + hs.SyncState.SendEphemeralTimelineEventInRoom(roomId, new() { Sender = "@mxae:" + Request.Host.Value, Type = "m.room.message", TypedContent = MessageFormatter.FormatSuccess("Thinking..."),