chore: clean up admin panel

This commit is contained in:
Lapis
2026-06-19 16:59:00 -04:00
parent 3794e6e0ab
commit 21b5ac84e9
15 changed files with 442 additions and 329 deletions
@@ -0,0 +1,46 @@
using System.Text.Json;
namespace CannedNet.Admin.Services;
public class AdminConfigService
{
private const string ConfigFile = "admin_config.json";
private static readonly JsonSerializerOptions Indented = new() { WriteIndented = true };
public AdminConfigData Config { get; private set; }
public string ServerBaseUrl => Config.ServerBaseUrl;
public string ImagesBaseUrl => Config.ServerBaseUrl.TrimEnd('/') + "/img";
public AdminConfigService()
{
Config = Load();
}
public bool IsConfigured =>
!string.IsNullOrWhiteSpace(Config.ServerBaseUrl);
private static AdminConfigData Load()
{
if (!File.Exists(ConfigFile))
{
var empty = new AdminConfigData();
File.WriteAllText(ConfigFile, JsonSerializer.Serialize(empty, Indented));
return empty;
}
var json = File.ReadAllText(ConfigFile);
return JsonSerializer.Deserialize<AdminConfigData>(json) ?? new AdminConfigData();
}
public void Save(AdminConfigData updated)
{
Config = updated;
File.WriteAllText(ConfigFile, JsonSerializer.Serialize(Config, Indented));
}
public class AdminConfigData
{
public string ServerBaseUrl { get; set; } = "";
}
}