Improved fetching config data, implemented envinronmet variable support alongside .env support
This commit is contained in:
49
Models/configData.cs
Executable file
49
Models/configData.cs
Executable file
@@ -0,0 +1,49 @@
|
||||
namespace CatsOfMastodonBot.Models
|
||||
{
|
||||
public class configData
|
||||
{
|
||||
|
||||
public static Boolean fetchData()
|
||||
{
|
||||
// Load from .env file first
|
||||
DotNetEnv.Env.Load();
|
||||
|
||||
// Fetch values from .env file or environment variables (fall back)
|
||||
string dbName = DotNetEnv.Env.GetString("DB_NAME") ?? Environment.GetEnvironmentVariable("DB_NAME");
|
||||
string botToken = DotNetEnv.Env.GetString("BOT_TOKEN") ?? Environment.GetEnvironmentVariable("BOT_TOKEN");
|
||||
string tag = DotNetEnv.Env.GetString("TAG") ?? Environment.GetEnvironmentVariable("TAG");
|
||||
string channelNumId = DotNetEnv.Env.GetString("CHANNEL_NUMID") ?? Environment.GetEnvironmentVariable("CHANNEL_NUMID");
|
||||
string adminNumId = DotNetEnv.Env.GetString("ADMIN_NUMID") ?? Environment.GetEnvironmentVariable("ADMIN_NUMID");
|
||||
string instance = DotNetEnv.Env.GetString("INSTANCE") ?? Environment.GetEnvironmentVariable("INSTANCE");
|
||||
|
||||
// Check if any of the values are still null or empty
|
||||
if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(botToken) || string.IsNullOrEmpty(tag)
|
||||
|| string.IsNullOrEmpty(channelNumId) || string.IsNullOrEmpty(adminNumId))
|
||||
{
|
||||
return false; // Failure if any are missing
|
||||
}
|
||||
|
||||
// If all required variables are present, assign to the config
|
||||
config config = new config
|
||||
{
|
||||
DB_NAME = dbName,
|
||||
BOT_TOKEN = botToken,
|
||||
TAG = tag,
|
||||
CHANNEL_NUMID = channelNumId,
|
||||
ADMIN_NUMID = adminNumId
|
||||
};
|
||||
|
||||
return true; // Success
|
||||
}
|
||||
|
||||
public class config
|
||||
{
|
||||
public string DB_NAME { get; set; }
|
||||
public string BOT_TOKEN { get; set; }
|
||||
public string TAG { get; set; }
|
||||
public string CHANNEL_NUMID { get; set; }
|
||||
public string ADMIN_NUMID { get; set; }
|
||||
public string INSTANCE { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user