Changed the default way to modify values in store. Added basic validation to stores. Using interfaces to DI store objects.

This commit is contained in:
Tom
2025-01-16 19:49:02 +00:00
parent b00c72ec2a
commit ee3f128a9f
24 changed files with 173 additions and 61 deletions

View File

@ -13,7 +13,7 @@ namespace HermesSocketServer.Requests
private ILogger _logger;
private Random _random;
public CreateTTSVoice(VoiceStore voices, ILogger logger)
public CreateTTSVoice(IStore<string, TTSVoice> voices, ILogger logger)
{
_voices = voices;
_logger = logger;

View File

@ -12,7 +12,7 @@ namespace HermesSocketServer.Requests
private IStore<string, TTSVoice> _voices;
private ILogger _logger;
public DeleteTTSVoice(VoiceStore voices, ILogger logger)
public DeleteTTSVoice(IStore<string, TTSVoice> voices, ILogger logger)
{
_voices = voices;
_logger = logger;

View File

@ -8,11 +8,11 @@ namespace HermesSocketServer.Requests
{
public string Name => "get_default_tts_voice";
public string[] RequiredKeys => [];
private readonly UserStore _users;
private readonly IStore<string, User> _users;
private readonly ServerConfiguration _configuration;
private readonly ILogger _logger;
public GetDefaultTTSVoice(UserStore users, ServerConfiguration configuration, ILogger logger)
public GetDefaultTTSVoice(IStore<string, User> users, ServerConfiguration configuration, ILogger logger)
{
_users = users;
_configuration = configuration;

View File

@ -9,10 +9,10 @@ namespace HermesSocketServer.Requests
{
public string Name => "get_tts_voices";
public string[] RequiredKeys => [];
private VoiceStore _voices;
private IStore<string, TTSVoice> _voices;
private ILogger _logger;
public GetTTSVoices(VoiceStore voices, ILogger logger)
public GetTTSVoices(IStore<string, TTSVoice> voices, ILogger logger)
{
_voices = voices;
_logger = logger;

View File

@ -8,10 +8,10 @@ namespace HermesSocketServer.Requests
{
public string Name => "update_default_tts_voice";
public string[] RequiredKeys => ["user", "voice"];
private UserStore _users;
private IStore<string, User> _users;
private ILogger _logger;
public UpdateDefaultTTSVoice(UserStore users, ILogger logger)
public UpdateDefaultTTSVoice(IStore<string, User> users, ILogger logger)
{
_users = users;
_logger = logger;

View File

@ -41,11 +41,7 @@ namespace HermesSocketServer.Requests
Type = type,
};
bool result = channel.Actions.Modify(name, action =>
{
action.Type = type;
action.Data = dict;
});
bool result = channel.Actions.Modify(name, action);
if (result)
{
_logger.Information($"Added redeemable action to channel [name: {name}][type: {type}][channel: {channel.Id}]");

View File

@ -1,3 +1,4 @@
using HermesSocketLibrary.Requests.Messages;
using HermesSocketServer.Models;
using ILogger = Serilog.ILogger;
@ -25,16 +26,16 @@ namespace HermesSocketServer.Requests
return Task.FromResult(RequestResult.Failed("Order must be an integer."));
bool state = data["state"].ToString()?.ToLower() == "true";
bool result = channel.Redemptions.Modify(id, r =>
{
if (r.UserId != channel.Id)
return;
Redemption redemption = new Redemption() {
Id = id,
UserId = channel.Id,
RedemptionId = redemptionId,
ActionName = actionName,
Order = order,
State = state,
};
r.RedemptionId = redemptionId;
r.ActionName = actionName;
r.Order = order;
r.State = state;
});
bool result = channel.Redemptions.Modify(id, redemption);
var r = channel.Redemptions.Get(id);
if (result)

View File

@ -35,12 +35,7 @@ namespace HermesSocketServer.Requests
Flag = flag,
};
bool result = channel.Filters.Modify(id, f => {
f.Search = search;
f.Replace = replace;
if (flag >= 0)
f.Flag = flag;
});
bool result = channel.Filters.Modify(id, filter);
if (result)
{

View File

@ -12,7 +12,7 @@ namespace HermesSocketServer.Requests
private IStore<string, TTSVoice> _voices;
private ILogger _logger;
public UpdateTTSVoice(VoiceStore voices, ILogger logger)
public UpdateTTSVoice(IStore<string, TTSVoice> voices, ILogger logger)
{
_voices = voices;
_logger = logger;