41 lines
1.5 KiB
C#
41 lines
1.5 KiB
C#
using HermesSocketLibrary.db;
|
|
using HermesSocketLibrary.Socket.Data;
|
|
|
|
namespace HermesSocketServer.Requests
|
|
{
|
|
public class GetConnections : IRequest
|
|
{
|
|
public string Name => "get_connections";
|
|
public string[] RequiredKeys => [];
|
|
private Database _database;
|
|
private Serilog.ILogger _logger;
|
|
|
|
public GetConnections(Database database, Serilog.ILogger logger)
|
|
{
|
|
_database = database;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<RequestResult> Grant(string sender, IDictionary<string, object>? data)
|
|
{
|
|
var temp = new Dictionary<string, object>() { { "user", sender } };
|
|
|
|
var connections = new List<Connection>();
|
|
string sql = "select \"name\", \"type\", \"clientId\", \"accessToken\", \"grantType\", \"scope\", \"expiresAt\", \"default\" from \"Connection\" where \"userId\" = @user";
|
|
await _database.Execute(sql, temp, sql =>
|
|
connections.Add(new Connection()
|
|
{
|
|
Name = sql.GetString(0),
|
|
Type = sql.GetString(1),
|
|
ClientId = sql.GetString(2),
|
|
AccessToken = sql.GetString(3),
|
|
GrantType = sql.GetString(4),
|
|
Scope = sql.GetString(5),
|
|
ExpiresAt = sql.GetDateTime(6),
|
|
Default = sql.GetBoolean(7)
|
|
})
|
|
);
|
|
return RequestResult.Successful(connections, notifyClientsOnAccount: false);
|
|
}
|
|
}
|
|
} |