summary refs log tree commit diff
path: root/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor')
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor107
1 files changed, 107 insertions, 0 deletions
diff --git a/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor
new file mode 100644

index 00000000..275ca146 --- /dev/null +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor
@@ -0,0 +1,107 @@ +@page "/" +@using System.Net.Http.Headers +@using Spacebar.AdminApi.TestClient.Services +@inject Config Config +@inject ILocalStorageService LocalStorage + +<PageTitle>Home</PageTitle> + +<span style="@($"color: {(IsApiUrlValid ? "green" : "red")};")">Spacebar API URL: </span> +<InputText @bind-Value:get="Config.ApiUrl" @bind-Value:set="@(async (v) => { + Config.ApiUrl = v!; + await ValidateAndSaveConfig(); + })"/> +<br/> + +<!-- <span style="@($"color: {(IsGatewayUrlValid ? "green" : "red")};")">Spacebar Gateway URL: </span> --> +<!-- <InputText @bind-Value="GatewayUrl" /> --> +<!-- <br /> --> + +<span style="@($"color: {(IsCdnUrlValid ? "green" : "red")};")">Spacebar CDN URL: </span> +<InputText @bind-Value:get="Config.CdnUrl" @bind-Value:set="@(async (v) => { + Config.CdnUrl = v!; + await ValidateAndSaveConfig(); + })"/> +<br/> + +<span style="@($"color: {(IsAdminApiUrlValid ? "green" : "red")};")">Spacebar Admin API URL: </span> +<InputText @bind-Value:get="Config.AdminUrl" @bind-Value:set="@(async (v) => { + Config.AdminUrl = v!; + await ValidateAndSaveConfig(); + })"/> +<br/> + +<span style="@($"color: {(IsAccessTokenValid ? "green" : "red")};")">Access Token: </span> +<InputText @bind-Value:get="Config.AccessToken" @bind-Value:set="@(async (v) => { + Config.AccessToken = v!; + await ValidateAndSaveConfig(); + })"/> +<a href="/login">New access token</a> +<br/> + +@code { + + private bool IsApiUrlValid { get; set; } + + // private bool IsGatewayUrlValid { get; set; } + private bool IsCdnUrlValid { get; set; } + private bool IsAdminApiUrlValid { get; set; } + private bool IsAccessTokenValid { get; set; } + + protected override async Task OnInitializedAsync() { + await ValidateAndSaveConfig(); + } + + private async Task ValidateAndSaveConfig() { + await LocalStorage.SetItemAsync("sb_admin_tc_config", Config); + + using var hc = new HttpClient(); + HttpResponseMessage response; + try { + response = await hc.GetAsync(Config.ApiUrl + "/api/v9/policies/instance/domains"); + IsApiUrlValid = response.IsSuccessStatusCode; + } + catch { + IsApiUrlValid = false; + } + + StateHasChanged(); + + // response = await hc.GetAsync(Config.GatewayUrl + "/api/v9/policies/instance"); + // IsGatewayUrlValid = response.IsSuccessStatusCode; + // StateHasChanged(); + + try { + response = await hc.GetAsync(Config.CdnUrl + "/ping"); + IsCdnUrlValid = response.IsSuccessStatusCode; + } + catch { + IsCdnUrlValid = false; + } + + StateHasChanged(); + + try { + response = await hc.GetAsync(Config.AdminUrl + "/_spacebar/admin/ping"); + IsAdminApiUrlValid = response.IsSuccessStatusCode; + } + catch { + IsAdminApiUrlValid = false; + } + + StateHasChanged(); + + try { + var request = new HttpRequestMessage(HttpMethod.Get, Config.AdminUrl + "/_spacebar/admin/whoami"); + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken); + response = await hc.SendAsync(request); + IsAccessTokenValid = response.IsSuccessStatusCode; + } + catch { + IsAccessTokenValid = false; + } + + StateHasChanged(); + } + +} \ No newline at end of file