Files
hermes-server/Requests/GetPermissions.cs

34 lines
1.1 KiB
C#

using HermesSocketLibrary.Requests.Messages;
using HermesSocketServer.Models;
using ILogger = Serilog.ILogger;
namespace HermesSocketServer.Requests
{
public class GetPermissions : IRequest
{
public string Name => "get_permissions";
public string[] RequiredKeys => [];
private readonly ILogger _logger;
public GetPermissions(ILogger logger)
{
_logger = logger;
}
public Task<RequestResult> Grant(Channel channel, IDictionary<string, object> data)
{
var groups = channel.Groups.Get().Values;
var groupChatters = channel.Groups.Chatters.Values.SelectMany(g => g.Get().Values);
var groupPermissions = channel.GroupPermissions.Get().Values;
_logger.Information($"Fetched all permissions for channel [channel: {channel.Id}]");
var info = new GroupInfo()
{
Groups = groups,
GroupChatters = groupChatters,
GroupPermissions = groupPermissions,
};
return Task.FromResult(RequestResult.Successful(info, notifyClientsOnAccount: false));
}
}
}