@page "/admin/api" @using MoonCore.Blazor.FlyonUi.Common @using MoonCore.Helpers @using Moonlight.Shared.Http.Responses.Admin.ApiKeys @using MoonCore.Blazor.FlyonUi.Grid @using MoonCore.Blazor.FlyonUi.Grid.Columns @using MoonCore.Blazor.FlyonUi.Grid.ToolbarItems @using MoonCore.Common @inject HttpApiClient ApiClient @inject AlertService AlertService @inject ToastService ToastService

API Documentation

Open

Learn about the api usage

Open

Open API Specification

Open
@Formatter.FormatDate(context.ExpiresAt.UtcDateTime) @Formatter.FormatDate(context.CreatedAt.UtcDateTime) Create @code { private DataGrid Grid; private ItemSource ItemSource => ItemSourceFactory.From(LoadItemsAsync); private async Task> LoadItemsAsync( int startIndex, int count, string? filter, SortOption? sortOption ) { var query = $"?startIndex={startIndex}&count={count}"; if (sortOption != null) { var dir = sortOption.Direction == SortDirection.Descending ? "desc" : "asc"; query += $"&orderBy={sortOption.Column}&orderByDir={dir}"; } if (!string.IsNullOrEmpty(filter)) query += $"&filter={filter}"; return await ApiClient.GetJson>($"api/admin/apikeys{query}"); } private async Task DeleteAsync(ApiKeyResponse apiKeyResponse) { await AlertService.ConfirmDangerAsync( "API Key Deletion", $"Do you really want to delete the api key '{apiKeyResponse.Description}'", async () => { await ApiClient.Delete($"api/admin/apikeys/{apiKeyResponse.Id}"); await ToastService.SuccessAsync("Successfully deleted api key"); await Grid.RefreshAsync(); } ); } }