using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
using ApplicationLayer.Services.AuthServices.NeededServices;
namespace ApplicationLayer.Services.AuthServices.LoginService;
/// 
public class LoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService
{
    async Task ILoginService.LoginAsync(string email, string password, CancellationToken cancellationToken)
    {
            var user = await users.FindByEmailAsync(email, cancellationToken);
            if (user is null || user.Password != password)
            {
                throw new IncorrectLoginDataException();
            }
            return tokenGenerator.CreateToken(user);
        }
}