@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.Tailwind.Input2
@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 string[] Permissions = [];
protected override void OnInitialized()
{
Request = new();
}
private async Task OnSubmit()
{
Request.PermissionsJson = JsonSerializer.Serialize(Permissions);
Request.ExpiresAt = Request.ExpiresAt.ToUniversalTime();
var response = await ApiClient.PostJson("api/admin/apikeys", Request);
await DownloadService.DownloadString(
$"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");
}
}