frostfs-sdk-csharp/src/FrostFS.SDK.ClientV2/Services/Shared/SessionProvider.cs
Pavel Gross 2a28806ace [#21] Client: Allows multinenant client
Using one client for several owners

Signed-off-by: Pavel Gross <p.gross@yando.com>
2024-08-12 10:53:00 +03:00

23 lines
No EOL
665 B
C#

using System.Threading.Tasks;
using FrostFS.SDK.ClientV2.Parameters;
namespace FrostFS.SDK.ClientV2;
internal interface ISessionProvider
{
ValueTask<Session.SessionToken> GetOrCreateSession(ISessionToken args, Context ctx);
}
internal class SessionProvider(ClientEnvironment env)
{
public async ValueTask<Session.SessionToken> GetOrCreateSession(ISessionToken args, Context ctx)
{
if (args.SessionToken is null)
{
return await env.Client.CreateSessionInternalAsync(new PrmSessionCreate(uint.MaxValue) { Context = ctx });
}
return new Session.SessionToken().Deserialize(args.SessionToken.Token);
}
}