From 771b949618bb4e07c09c2fb94a7f92e13f471b9e Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 25 Dec 2025 19:59:26 +0100 Subject: Initial commit --- ShareGuard.Web.Client/Pages/Redeem.razor | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 ShareGuard.Web.Client/Pages/Redeem.razor (limited to 'ShareGuard.Web.Client/Pages/Redeem.razor') diff --git a/ShareGuard.Web.Client/Pages/Redeem.razor b/ShareGuard.Web.Client/Pages/Redeem.razor new file mode 100644 index 0000000..d6abc95 --- /dev/null +++ b/ShareGuard.Web.Client/Pages/Redeem.razor @@ -0,0 +1,53 @@ +@page "/redeem/{Token}/" +@using System.Net +@rendermode @(new InteractiveWebAssemblyRenderMode(false)) +@inject IJSRuntime Js +@inject NavigationManager navigation + +@if (_responseCode == null) +{ +

Loading...

+} +else if (_responseCode == HttpStatusCode.Forbidden) +{ + Invalid invitation! +} +else if (_responseCode == HttpStatusCode.NoContent) +{ + No template providen by admin. +} +else if (_responseCode == HttpStatusCode.BadRequest) +{ + An internal error occured. +} +else +{ + @foreach (var configLine in _config!.Split("\n")) + { +

@configLine

+ } +} + +@code { + private readonly HttpClient _httpClient = new(); + [Parameter] public string Token { get; set; } + private HttpStatusCode? _responseCode; + private string? _config; + + protected override async Task OnInitializedAsync() + { + var keypair = await Js.InvokeAsync>("wireguard.generateKeypair"); + var requestBody = new Dictionary + { + { "PublicKey", keypair["publicKey"] } + }; + var response = await _httpClient.PostAsync($"{navigation.BaseUri}api/redeem/{Token}/", new FormUrlEncodedContent(requestBody)); + _responseCode = response.StatusCode; + var template = await response.Content.ReadAsStringAsync(); + + if (_responseCode == HttpStatusCode.OK) + _config = template.Replace("{publicKey}", keypair["publicKey"]) + .Replace("{privateKey}", keypair["privateKey"]); + } + +} -- cgit v1.2.3