server-master/srcs/_plugins/Plugin.MongoLogs/Utils/MongoLogsConfiguration.cs

40 lines
No EOL
1.5 KiB
C#

using System;
namespace Plugin.MongoLogs.Utils
{
public class MongoLogsConfiguration
{
public MongoLogsConfiguration(string host, short port, string dbName, string username, string password)
{
Host = host;
Port = port;
DbName = dbName;
Username = username;
Password = password;
}
public string Host { get; }
public short Port { get; }
public string DbName { get; }
public string Username { get; }
public string Password { get; }
public static MongoLogsConfiguration FromEnv()
{
string username = Environment.GetEnvironmentVariable("WINGSEMU_MONGO_USERNAME")
?? throw new InvalidOperationException("WINGSEMU_MONGO_USERNAME environment variable is required");
string password = Environment.GetEnvironmentVariable("WINGSEMU_MONGO_PWD")
?? throw new InvalidOperationException("WINGSEMU_MONGO_PWD environment variable is required");
return new MongoLogsConfiguration(
Environment.GetEnvironmentVariable("WINGSEMU_MONGO_HOST") ?? "localhost",
short.Parse(Environment.GetEnvironmentVariable("WINGSEMU_MONGO_PORT") ?? "27017"),
Environment.GetEnvironmentVariable("WINGSEMU_MONGO_DB") ?? "wingsemu_logs",
username,
password
);
}
public override string ToString() => $"mongodb://***:***@{Host}:{Port}";
}
}