From 4534d4dbf5f5071fa71c5dec4444bf4b2bbd040c Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 14 Dec 2025 23:18:35 +0100 Subject: admin api packaging --- .../Pages/UsersDelete.razor | 70 ---------------------- 1 file changed, 70 deletions(-) delete mode 100644 extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor (limited to 'extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor') diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor b/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor deleted file mode 100644 index 98a3e0fc7..000000000 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor +++ /dev/null @@ -1,70 +0,0 @@ -@page "/Users/Delete/{Id}" -@using System.Net.Http.Headers -@using System.Text.Json -@using System.Text.Json.Nodes -@using ArcaneLibs.Extensions -@using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services -@inject Config Config -

UsersDelete - @Id

- -Deleted @ChannelDeleteProgress.Sum(x=>x.Value.Deleted) messages so far! -@foreach (var (channel, progress) in ChannelDeleteProgress.Where(x=>x.Value.Deleted != x.Value.Total).OrderByDescending(x=>x.Value.Progress)) { -
@channel: @progress.Total total, @progress.Deleted deleted
- -} - -@if (Done) { -

Done!

-} - -@code { - - [Parameter] - public required string Id { get; set; } - - private Dictionary ChannelDeleteProgress { get; set; } = new(); - - private bool Done { get; set; } - - protected override async Task OnInitializedAsync() { - var hc = new StreamingHttpClient(); - hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken); - var response = await hc.GetAsync(Config.AdminUrl + $"/_spacebar/admin/Users/{Id}/delete?messageDeleteChunkSize=100"); - if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync()); - var content = response.Content.ReadFromJsonAsAsyncEnumerable(); - await foreach (var actionResult in content) { - Console.WriteLine(actionResult.ToJson(indent: false)); - switch (actionResult.MessageType) { - case "STATS": { - var data = JsonSerializer.Deserialize(actionResult.Data.ToJson()); - ChannelDeleteProgress = data!["messages_per_channel"]! - .Deserialize>()! - .ToDictionary(x=>x.Key, x=>new DeleteProgress { Total = x.Value }); - break; - } - case "BULK_DELETED": { - var data = JsonSerializer.Deserialize(actionResult.Data.ToJson()); - ChannelDeleteProgress[data!["channel_id"]!.ToString()].Deleted += data!["deleted"]!.GetValue(); - break; - } - default: { - Console.WriteLine($"Unknown message type: {actionResult.MessageType}"); - break; - } - } - - StateHasChanged(); - await Task.Delay(1); - } - - Done = true; - StateHasChanged(); - } - - private class DeleteProgress { - public int Total { get; set; } - public int Deleted { get; set; } = 0; - public float Progress => (float)Deleted / Total; - } -} \ No newline at end of file -- cgit 1.5.1