From 4928d96d74d5bb559c83caeff33329fa629999dc Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 21 Feb 2025 18:12:41 +0100 Subject: HomeserverEmulator changes --- .../Controllers/HEClient/HEClientController.cs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Utilities/LibMatrix.HomeserverEmulator/Controllers/HEClient/HEClientController.cs (limited to 'Utilities/LibMatrix.HomeserverEmulator/Controllers/HEClient') diff --git a/Utilities/LibMatrix.HomeserverEmulator/Controllers/HEClient/HEClientController.cs b/Utilities/LibMatrix.HomeserverEmulator/Controllers/HEClient/HEClientController.cs new file mode 100644 index 0000000..85e4ddb --- /dev/null +++ b/Utilities/LibMatrix.HomeserverEmulator/Controllers/HEClient/HEClientController.cs @@ -0,0 +1,34 @@ +using ArcaneLibs.Collections; +using LibMatrix.HomeserverEmulator.Services; +using LibMatrix.Responses; +using Microsoft.AspNetCore.Mvc; + +namespace LibMatrix.HomeserverEmulator.Controllers; + +[ApiController] +[Route("/_hse/client/v1/external_profiles")] +public class HEClientController(ILogger logger, UserStore userStore, TokenService tokenService) : ControllerBase { + [HttpGet] + public async Task> GetExternalProfiles() { + var token = tokenService.GetAccessToken(HttpContext); + var user = await userStore.GetUserByToken(token); + + return user.AuthorizedSessions; + } + + [HttpPut("{name}")] + public async Task PutExternalProfile(string name, [FromBody] LoginResponse sessionData) { + var token = tokenService.GetAccessToken(HttpContext); + var user = await userStore.GetUserByToken(token); + + user.AuthorizedSessions[name] = sessionData; + } + + [HttpDelete("{name}")] + public async Task DeleteExternalProfile(string name) { + var token = tokenService.GetAccessToken(HttpContext); + var user = await userStore.GetUserByToken(token); + + user.AuthorizedSessions.Remove(name); + } +} \ No newline at end of file -- cgit 1.5.1