@page "/admin/api" @using MoonCore.Helpers @using MoonCore.Models @using Moonlight.Shared.Http.Responses.Admin.ApiKeys @using MoonCore.Blazor.FlyonUi.Grid @using MoonCore.Blazor.FlyonUi.Grid.Columns @using MoonCore.Blazor.FlyonUi.Grid.ToolbarItems @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 async Task> ItemsProviderAsync(DataGridItemRequest request) { var query = $"?startIndex={request.StartIndex}&count={request.Count}"; if (!string.IsNullOrEmpty(request.SortColumn)) { var dir = request.SortDirection == SortState.Descending ? "desc" : "asc"; query += $"&orderBy={request.SortColumn}&orderByDir={dir}"; } if (!string.IsNullOrEmpty(request.Filter)) query += $"&filter={request.Filter}"; var data = await ApiClient.GetJson>($"api/admin/apikeys{query}"); return new() { Items = data.Items, TotalCount = data.TotalCount }; } 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(); } ); } }