using Newtonsoft.Json.Linq; namespace ServerBase; public class MetaverseBrokerConfig { public required string JwtSecretKey { get; init; } public int ExpireMinutes { get; init; } = 1440; public required string Issuer { get; init; } = string.Empty; public required string Audience { get; init; } = string.Empty; public required string MetaverseBrokerDb { get; init; } public required string MetaverseBrokerDbLocal { get; init; } public required string SsoAccountDb { get; init; } } // TODO: getset 파일로 이동할 것 public partial class ServerConfig { public MetaverseBrokerConfig? MetaverseBroker; } public class ServerConfigMetaverseBroker : ServerConfig { public override async Task parseConfig(JObject loadedJosn) { var result = await base.parseConfig(loadedJosn); if (result.isSuccess()) { var r = loadedJosn.ContainsKey("MetaverseBroker"); var jToken = loadedJosn["MetaverseBroker"]; if (jToken != null) { MetaverseBroker = new MetaverseBrokerConfig { JwtSecretKey = jToken["JwtSecretKey"]?.Value() ?? string.Empty, ExpireMinutes = jToken["ExpireMinutes"]?.Value() ?? 1440, Issuer = jToken["Issuer"]?.Value() ?? string.Empty, Audience = jToken["Audience"]?.Value() ?? string.Empty, MetaverseBrokerDb = jToken["MetaverseBrokerDb"]?.Value() ?? string.Empty, MetaverseBrokerDbLocal = jToken["MetaverseBrokerDbLocal"]?.Value() ?? string.Empty, SsoAccountDb = jToken["SsoAccountDb"]?.Value() ?? string.Empty }; return result; } } result.setFail(ServerErrorCode.ServerConfigFileNotFound, "server config error : metaverse_broker not found"); return await Task.FromResult(result); } }