30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using ApplicationLayer.InfrastructureServicesInterfaces;
 | |
| using ApplicationLayer.Services.AuthServices.Common;
 | |
| using ApplicationLayer.Services.AuthServices.LoginService.Exceptions;
 | |
| using ApplicationLayer.Services.AuthServices.NeededServices;
 | |
| using ApplicationLayer.Services.AuthServices.Requests;
 | |
| using Domains.Users;
 | |
| 
 | |
| namespace ApplicationLayer.Services.AuthServices.LoginService;
 | |
| 
 | |
| public class DevelopmentLoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService
 | |
| {
 | |
|     async Task<AuthToken> ILoginService.LoginAsync(LoginRequest request, CancellationToken cancellationToken)
 | |
|     {
 | |
|         if (request.AuthData is { Email: "admin@mail.ru", Password: "admin" })
 | |
|         {
 | |
|             var admin = new User { Role = Role.Admin };
 | |
| 
 | |
|             return tokenGenerator.CreateToken(admin);
 | |
|         }
 | |
| 
 | |
|         var user = await users.FindByEmailAsync(request.AuthData.Email, cancellationToken);
 | |
|         if (user is null || user.Password != request.AuthData.Password)
 | |
|         {
 | |
|             throw new IncorrectLoginDataException();
 | |
|         }
 | |
| 
 | |
|         return tokenGenerator.CreateToken(user);
 | |
|     }
 | |
| }
 |