@using Moonlight.Frontend.Helpers @using Moonlight.Frontend.UI.Admin.Components @using Moonlight.Shared.Http.Requests.Admin.ApiKeys @using Moonlight.Shared.Http.Responses @using ShadcnBlazor.Dialogs @using ShadcnBlazor.Extras.Forms @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Fields @using ShadcnBlazor.Inputs @inherits ShadcnBlazor.Extras.Dialogs.DialogBase @inject HttpClient HttpClient @inject ToastService ToastService Create new API key Define a name, description, and select the permissions that the key should have.
Name Description Permissions
Save changes
@code { [Parameter] public Func OnSubmit { get; set; } private CreateApiKeyDto Request; private List Permissions = new(); protected override void OnInitialized() { Request = new() { Permissions = [] }; } private async Task OnSubmitAsync(EditContext editContext, ValidationMessageStore validationMessageStore) { Request.Permissions = Permissions.ToArray(); var response = await HttpClient.PostAsJsonAsync( "/api/admin/apiKeys", Request, Constants.SerializerOptions ); if (!response.IsSuccessStatusCode) { await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Request, validationMessageStore); return false; } await ToastService.SuccessAsync( "API Key creation", $"Successfully created API key {Request.Name}" ); await OnSubmit.Invoke(); await CloseAsync(); return true; } }