From 0fa768556aca00f4346ccd71917fad048def6323 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 30 May 2024 08:22:50 +0000 Subject: Move around some projects, further cleanup pending --- .../Controllers/Users/UserController.cs | 80 ---------------------- 1 file changed, 80 deletions(-) delete mode 100644 Tests/LibMatrix.HomeserverEmulator/Controllers/Users/UserController.cs (limited to 'Tests/LibMatrix.HomeserverEmulator/Controllers/Users/UserController.cs') diff --git a/Tests/LibMatrix.HomeserverEmulator/Controllers/Users/UserController.cs b/Tests/LibMatrix.HomeserverEmulator/Controllers/Users/UserController.cs deleted file mode 100644 index 2be3896..0000000 --- a/Tests/LibMatrix.HomeserverEmulator/Controllers/Users/UserController.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System.Text.Json.Nodes; -using System.Text.Json.Serialization; -using ArcaneLibs.Extensions; -using LibMatrix.EventTypes.Spec.State; -using LibMatrix.Filters; -using LibMatrix.HomeserverEmulator.Services; -using LibMatrix.Responses; -using Microsoft.AspNetCore.Mvc; - -namespace LibMatrix.HomeserverEmulator.Controllers; - -[ApiController] -[Route("/_matrix/client/{version}/")] -public class UserController(ILogger logger, TokenService tokenService, UserStore userStore, RoomStore roomStore) : ControllerBase { - [HttpGet("account/whoami")] - public async Task Login() { - var token = tokenService.GetAccessToken(HttpContext); - var user = await userStore.GetUserByToken(token, Random.Shared.Next(101) <= 10, tokenService.GenerateServerName(HttpContext)); - if (user is null) - throw new MatrixException() { - ErrorCode = "M_UNKNOWN_TOKEN", - Error = "Invalid token." - }; - var whoAmIResponse = new WhoAmIResponse { - UserId = user.UserId - }; - return whoAmIResponse; - } - - [HttpGet("joined_rooms")] - public async Task GetJoinedRooms() { - var token = tokenService.GetAccessToken(HttpContext); - var user = await userStore.GetUserByToken(token, false); - if (user is null) - throw new MatrixException() { - ErrorCode = "M_UNAUTHORIZED", - Error = "Invalid token." - }; - // return user.JoinedRooms; - - return new { - joined_rooms = roomStore._rooms.Where(r => - r.State.Any(s => s.StateKey == user.UserId && s.Type == RoomMemberEventContent.EventId && (s.TypedContent as RoomMemberEventContent).Membership == "join") - ).Select(r => r.RoomId).ToList() - }; - } - - [HttpGet("devices")] - public async Task GetDevices() { - var token = tokenService.GetAccessToken(HttpContext); - var user = await userStore.GetUserByToken(token, false); - if (user is null) - throw new MatrixException() { - ErrorCode = "M_UNAUTHORIZED", - Error = "Invalid token." - }; - return new() { - Devices = user.AccessTokens.Select(x=>new DevicesResponse.Device() { - DeviceId = x.Value.DeviceId, - DisplayName = x.Value.DeviceId - }).ToList() - }; - } - - public class DevicesResponse { - [JsonPropertyName("devices")] - public List Devices { get; set; } - - public class Device { - [JsonPropertyName("device_id")] - public string DeviceId { get; set; } - [JsonPropertyName("display_name")] - public string DisplayName { get; set; } - [JsonPropertyName("last_seen_ip")] - public string LastSeenIp { get; set; } - [JsonPropertyName("last_seen_ts")] - public long LastSeenTs { get; set; } - } - } -} \ No newline at end of file -- cgit 1.4.1