blob: 85e4ddbc9546a785abf4405939f16e6187c5dfe8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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<HEClientController> logger, UserStore userStore, TokenService tokenService) : ControllerBase {
[HttpGet]
public async Task<ObservableDictionary<string, LoginResponse>> 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);
}
}
|