Added stores for connections. Added requests for groups, group chatters, group permissions & connections. Using TTS Voice State store.

This commit is contained in:
Tom
2025-01-17 04:32:31 +00:00
parent 422cd91db2
commit 6d955f245a
29 changed files with 759 additions and 67 deletions

View File

@ -0,0 +1,43 @@
using HermesSocketLibrary.Requests.Messages;
using HermesSocketServer.Models;
using ILogger = Serilog.ILogger;
namespace HermesSocketServer.Requests
{
public class CreateGroupPermission : IRequest
{
public string Name => "create_group_permission";
public string[] RequiredKeys => ["group", "path", "allow"];
private ILogger _logger;
public CreateGroupPermission(ILogger logger)
{
_logger = logger;
}
public Task<RequestResult> Grant(Channel channel, IDictionary<string, object> data)
{
var id = Guid.NewGuid();
string groupId = data["group"].ToString()!;
string path = data["path"].ToString()!;
bool? allow = bool.TryParse(data["allow"].ToString()!, out bool a) ? a : null;
var permission = new GroupPermission()
{
Id = id.ToString(),
UserId = channel.Id,
GroupId = groupId,
Path = path,
Allow = allow,
};
bool result = channel.GroupPermissions.Set(id.ToString(), permission);
if (result)
{
_logger.Information($"Added group permission to channel [permission id: {id}][group id: {groupId}][path: {path}][allow: {allow}][channel: {channel.Id}]");
return Task.FromResult(RequestResult.Successful(permission));
}
return Task.FromResult(RequestResult.Failed("Something went wrong when updating the cache."));
}
}
}