dotnet/space-translate/SpaceTranslate/WebHook/ConnectionExtensions.cs (25 lines of code) (raw):
using JetBrains.Space.Client;
using JetBrains.Space.Common;
using SpaceTranslate.Database;
namespace SpaceTranslate.WebHook;
public static class ConnectionExtensions
{
public static ClientCredentialsConnection CreateConnection(this Organization organization) =>
new(
serverUrl: new Uri(organization.ServerUrl),
clientId: organization.ClientId,
clientSecret: organization.ClientSecret);
public static RefreshTokenConnection? CreateConnection(this User user)
{
if (string.IsNullOrEmpty(user.RefreshToken)) return null;
return new RefreshTokenConnection(
serverUrl: new Uri(user.Organization.ServerUrl),
clientId: user.Organization.ClientId,
clientSecret: user.Organization.ClientSecret,
scopes: !string.IsNullOrEmpty(user.Scope)
? new PermissionScope(user.Scope)
: PermissionScopeBuilder.FromElement(
new(PermissionContextIdentifier.Global, PermissionIdentifier.ViewMessages)),
authenticationTokens: AuthenticationTokens.FromRefreshToken(user.RefreshToken));
}
}