Files
Swarm/DysonNetwork.Pass/Features/Auth/Services/IAccountConnectionService.cs

35 lines
1.3 KiB
C#

using System;
using System.Threading.Tasks;
using DysonNetwork.Common.Models;
using DysonNetwork.Pass.Features.Auth.Models;
namespace DysonNetwork.Pass.Features.Auth.Services;
public interface IAccountConnectionService
{
/// <summary>
/// Finds an existing account connection or creates a new one
/// </summary>
Task<Common.Models.AccountConnection> FindOrCreateConnection(Common.Models.OidcUserInfo userInfo, string provider);
/// <summary>
/// Updates an existing connection with new token information
/// </summary>
Task UpdateConnection(Common.Models.AccountConnection connection, Common.Models.OidcUserInfo userInfo);
/// <summary>
/// Finds an account connection by provider and user ID
/// </summary>
Task<Common.Models.AccountConnection?> FindConnection(string provider, string userId);
/// <summary>
/// Creates a new session for the specified account
/// </summary>
Task<Models.AuthSession> CreateSessionAsync(Common.Models.Account account, string? deviceId = null);
/// <summary>
/// Adds a new OIDC connection to an account
/// </summary>
Task<Common.Models.AccountConnection> AddConnectionAsync(Common.Models.Account account, Common.Models.OidcUserInfo userInfo, string provider);
}