@page "/admin/api/create"
@using System.Text.Json
@using MoonCore.Helpers
@using Moonlight.Shared.Http.Requests.Admin.ApiKeys
@using Moonlight.Shared.Http.Responses.Admin.ApiKeys
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonCore.Blazor.FlyonUi.Helpers
@inject HttpApiClient ApiClient
@inject NavigationManager Navigation
@inject ToastService ToastService
@inject AlertService AlertService
@inject DownloadService DownloadService
Back
Create
@code
{
private HandleForm Form;
private CreateApiKeyRequest Request;
private List Permissions = [];
protected override void OnInitialized()
{
Request = new();
}
private async Task OnSubmit()
{
Request.Permissions = Permissions.ToArray();
Request.ExpiresAt = Request.ExpiresAt.ToUniversalTime();
var response = await ApiClient.PostJson("api/admin/apikeys", Request);
await DownloadService.Download(
$"moonlight-key-{response.Id}.txt",
response.Secret
);
await AlertService.Success(
"API Key successfully created",
"The API Key has been downloaded. Dont lose it, you cant view it anymore"
);
await ToastService.Success("Successfully created api key");
Navigation.NavigateTo("/admin/api");
}
}