From 5e6f1640dcb8e30a44f8ff07572874850b12cc2e Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 16 May 2020 14:30:07 -0400 Subject: simplify single-instance deployment and make MongoDB server optional --- .../Framework/ConfigModels/MongoDbConfig.cs | 25 ---------------------- .../Framework/ConfigModels/StorageConfig.cs | 18 ++++++++++++++++ .../Framework/ConfigModels/StorageMode.cs | 15 +++++++++++++ 3 files changed, 33 insertions(+), 25 deletions(-) delete mode 100644 src/SMAPI.Web/Framework/ConfigModels/MongoDbConfig.cs create mode 100644 src/SMAPI.Web/Framework/ConfigModels/StorageConfig.cs create mode 100644 src/SMAPI.Web/Framework/ConfigModels/StorageMode.cs (limited to 'src/SMAPI.Web/Framework/ConfigModels') diff --git a/src/SMAPI.Web/Framework/ConfigModels/MongoDbConfig.cs b/src/SMAPI.Web/Framework/ConfigModels/MongoDbConfig.cs deleted file mode 100644 index c7b6cb00..00000000 --- a/src/SMAPI.Web/Framework/ConfigModels/MongoDbConfig.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace StardewModdingAPI.Web.Framework.ConfigModels -{ - /// The config settings for mod compatibility list. - internal class MongoDbConfig - { - /********* - ** Accessors - *********/ - /// The MongoDB connection string. - public string ConnectionString { get; set; } - - /// The database name. - public string Database { get; set; } - - - /********* - ** Public method - *********/ - /// Get whether a MongoDB instance is configured. - public bool IsConfigured() - { - return !string.IsNullOrWhiteSpace(this.ConnectionString); - } - } -} diff --git a/src/SMAPI.Web/Framework/ConfigModels/StorageConfig.cs b/src/SMAPI.Web/Framework/ConfigModels/StorageConfig.cs new file mode 100644 index 00000000..61cc4855 --- /dev/null +++ b/src/SMAPI.Web/Framework/ConfigModels/StorageConfig.cs @@ -0,0 +1,18 @@ +namespace StardewModdingAPI.Web.Framework.ConfigModels +{ + /// The config settings for cache storage. + internal class StorageConfig + { + /********* + ** Accessors + *********/ + /// The storage mechanism to use. + public StorageMode Mode { get; set; } + + /// The connection string for the storage mechanism, if applicable. + public string ConnectionString { get; set; } + + /// The database name for the storage mechanism, if applicable. + public string Database { get; set; } + } +} diff --git a/src/SMAPI.Web/Framework/ConfigModels/StorageMode.cs b/src/SMAPI.Web/Framework/ConfigModels/StorageMode.cs new file mode 100644 index 00000000..4c2ea801 --- /dev/null +++ b/src/SMAPI.Web/Framework/ConfigModels/StorageMode.cs @@ -0,0 +1,15 @@ +namespace StardewModdingAPI.Web.Framework.ConfigModels +{ + /// Indicates a storage mechanism to use. + internal enum StorageMode + { + /// Store data in a hosted MongoDB instance. + Mongo, + + /// Store data in an in-memory MongoDB instance. This is useful for testing MongoDB storage locally, but will likely fail when deployed since it needs permission to open a local port. + MongoInMemory, + + /// Store data in-memory. This is suitable for local testing or single-instance servers, but will cause issues when distributed across multiple servers. + InMemory + } +} -- cgit