blob: 9760e20d87fcacdaf171969e0a409c1a428dab2c (
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
|
using LibMatrix.Extensions;
using LibMatrix.Responses.Federation;
using LibMatrix.Services;
namespace LibMatrix.Homeservers;
public class FederationClient {
public FederationClient(string federationEndpoint, string? proxy = null) {
HttpClient = new MatrixHttpClient {
BaseAddress = new Uri(proxy?.TrimEnd('/') ?? federationEndpoint.TrimEnd('/')),
// Timeout = TimeSpan.FromSeconds(120) // TODO: Re-implement this
};
if (proxy is not null) HttpClient.DefaultRequestHeaders.Add("MXAE_UPSTREAM", federationEndpoint);
}
public MatrixHttpClient HttpClient { get; set; }
public HomeserverResolverService.WellKnownUris WellKnownUris { get; set; }
public async Task<ServerVersionResponse> GetServerVersionAsync() => await HttpClient.GetFromJsonAsync<ServerVersionResponse>("/_matrix/federation/v1/version");
public async Task<SignedObject<ServerKeysResponse>> GetServerKeysAsync() => await HttpClient.GetFromJsonAsync<SignedObject<ServerKeysResponse>>("/_matrix/key/v2/server");
}
|