about summary refs log tree commit diff
path: root/LibMatrix/Extensions
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2023-09-19 00:16:36 +0200
committerTheArcaneBrony <myrainbowdash949@gmail.com>2023-09-19 00:16:36 +0200
commitf5447484512d726f4403f0d7725777d0a95601fb (patch)
tree47fe88a4c021f62ff42663f6d8c5229e71d21813 /LibMatrix/Extensions
parentImprove README (diff)
downloadLibMatrix-bak-f5447484512d726f4403f0d7725777d0a95601fb.tar.xz
Add more stuff, add unit tests
Diffstat (limited to 'LibMatrix/Extensions')
-rw-r--r--LibMatrix/Extensions/HttpClientExtensions.cs12
-rw-r--r--LibMatrix/Extensions/StringExtensions.cs13
2 files changed, 11 insertions, 14 deletions
diff --git a/LibMatrix/Extensions/HttpClientExtensions.cs b/LibMatrix/Extensions/HttpClientExtensions.cs
index 31ae650..a5eb40f 100644
--- a/LibMatrix/Extensions/HttpClientExtensions.cs
+++ b/LibMatrix/Extensions/HttpClientExtensions.cs
@@ -1,6 +1,8 @@
 using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
 using System.Net.Http.Headers;
 using System.Reflection;
+using System.Text;
 using System.Text.Json;
 using ArcaneLibs.Extensions;
 
@@ -28,7 +30,8 @@ public class MatrixHttpClient : HttpClient {
         if (request.RequestUri is null) throw new NullReferenceException("RequestUri is null");
         if (AssertedUserId is not null) request.RequestUri = request.RequestUri.AddQuery("user_id", AssertedUserId);
 
-        Console.WriteLine($"Sending request to {request.RequestUri}");
+        // Console.WriteLine($"Sending request to {request.RequestUri}");
+
         try {
             var webAssemblyEnableStreamingResponseKey =
                 new HttpRequestOptionsKey<bool>("WebAssemblyEnableStreamingResponse");
@@ -76,4 +79,11 @@ public class MatrixHttpClient : HttpClient {
         response.EnsureSuccessStatusCode();
         return await response.Content.ReadAsStreamAsync(cancellationToken);
     }
+
+    public new async Task<HttpResponseMessage> PutAsJsonAsync<T>([StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, T value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default) {
+        var request = new HttpRequestMessage(HttpMethod.Put, requestUri);
+        request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+        request.Content = new StringContent(JsonSerializer.Serialize(value, value.GetType()), Encoding.UTF8, "application/json");
+        return await SendAsync(request, cancellationToken);
+    }
 }
diff --git a/LibMatrix/Extensions/StringExtensions.cs b/LibMatrix/Extensions/StringExtensions.cs
deleted file mode 100644
index 491fa77..0000000
--- a/LibMatrix/Extensions/StringExtensions.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace LibMatrix.Extensions;
-
-public static class StringExtensions {
-    // public static async Task<string> GetMediaUrl(this string MxcUrl)
-    // {
-    //     //MxcUrl: mxc://rory.gay/ocRVanZoUTCcifcVNwXgbtTg
-    //     //target: https://matrix.rory.gay/_matrix/media/v3/download/rory.gay/ocRVanZoUTCcifcVNwXgbtTg
-    //
-    //     var server = MxcUrl.Split('/')[2];
-    //     var mediaId = MxcUrl.Split('/')[3];
-    //     return $"{(await new RemoteHomeServer(server).Configure()).FullHomeServerDomain}/_matrix/media/v3/download/{server}/{mediaId}";
-    // }
-}