feat: add endpoint for cache
This commit is contained in:
parent
c02240077f
commit
29c9c10a53
@ -14,6 +14,7 @@ using Mirea.Api.Endpoint.Configuration.General;
|
|||||||
using Mirea.Api.Endpoint.Configuration.General.Settings;
|
using Mirea.Api.Endpoint.Configuration.General.Settings;
|
||||||
using MySqlConnector;
|
using MySqlConnector;
|
||||||
using Npgsql;
|
using Npgsql;
|
||||||
|
using StackExchange.Redis;
|
||||||
using System;
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
|
||||||
@ -139,6 +140,52 @@ public class SetupController(ISetupToken setupToken, IMaintenanceModeNotConfigur
|
|||||||
|
|
||||||
return SetDatabase<SqliteConnection, SqliteException>(connectionString, DbSettings.DatabaseEnum.Sqlite);
|
return SetDatabase<SqliteConnection, SqliteException>(connectionString, DbSettings.DatabaseEnum.Sqlite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost("SetRedis")]
|
||||||
|
[TokenAuthentication]
|
||||||
|
[BadRequestResponse]
|
||||||
|
public ActionResult<bool> SetRedis([FromBody] CacheRequest request)
|
||||||
|
{
|
||||||
|
string connectionString = $"{request.Server}:{request.Port},ssl=false";
|
||||||
|
if (request.Password != null)
|
||||||
|
connectionString += $",password={request.Password}";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var redis = ConnectionMultiplexer.Connect(connectionString);
|
||||||
|
redis.Close();
|
||||||
|
|
||||||
|
var general = GeneralConfig;
|
||||||
|
general.CacheSettings = new CacheSettings
|
||||||
|
{
|
||||||
|
ConnectionString = connectionString,
|
||||||
|
TypeDatabase = CacheSettings.CacheEnum.Redis
|
||||||
|
};
|
||||||
|
GeneralConfig = general;
|
||||||
|
|
||||||
|
return Ok(true);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new ControllerArgumentException("Error when connecting to Redis: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("SetMemcached")]
|
||||||
|
[TokenAuthentication]
|
||||||
|
[BadRequestResponse]
|
||||||
|
public ActionResult<bool> SetMemcached()
|
||||||
|
{
|
||||||
|
var general = GeneralConfig;
|
||||||
|
general.CacheSettings = new CacheSettings
|
||||||
|
{
|
||||||
|
ConnectionString = null,
|
||||||
|
TypeDatabase = CacheSettings.CacheEnum.Memcached
|
||||||
|
};
|
||||||
|
GeneralConfig = general;
|
||||||
|
|
||||||
|
return Ok(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user