user service operaional
This commit is contained in:
parent
c39b481eb8
commit
c1b3843e2a
@ -4,13 +4,47 @@ using System.Globalization;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Faker;
|
using Faker;
|
||||||
|
using Renis.Database.Models;
|
||||||
using Renis.Repositories;
|
using Renis.Repositories;
|
||||||
|
using Renis.Services.Jwt;
|
||||||
|
using renis_backend.DTO;
|
||||||
|
using renis_backend.Exceptions.User;
|
||||||
namespace renis_backend.Services.Users
|
namespace renis_backend.Services.Users
|
||||||
{
|
{
|
||||||
public class UserService : IUserService
|
public class UserService : IUserService
|
||||||
{
|
{
|
||||||
private readonly ILogger<UserService> _logger;
|
private readonly ILogger<UserService> _logger;
|
||||||
private readonly IUserRepository _userRepository;
|
private readonly IUserRepository _userRepository;
|
||||||
|
private readonly IJwtService _jwtService;
|
||||||
|
public UserService( ILogger<UserService> logger, IUserRepository userRepository, IJwtService jwtService)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_userRepository = userRepository;
|
||||||
|
_jwtService = jwtService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<User> GetUserAsync(string phone)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var user = await _userRepository.GetUserByPhone(phone);
|
||||||
|
if(user == null)
|
||||||
|
{
|
||||||
|
throw new UserException("User not found");
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex.Message);
|
||||||
|
if(ex is UserException)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
throw new UserException(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
public async Task<string> GenerateUser()
|
public async Task<string> GenerateUser()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -30,8 +64,20 @@ namespace renis_backend.Services.Users
|
|||||||
Phone = GenerateRussianPhoneNumber(),
|
Phone = GenerateRussianPhoneNumber(),
|
||||||
Password = password
|
Password = password
|
||||||
};
|
};
|
||||||
await _userRepository.AddUser(user);
|
if(await _userRepository.AddUser(user))
|
||||||
return user.Phone;
|
{
|
||||||
|
return _jwtService.GenerateAccessToken(user);
|
||||||
|
}
|
||||||
|
throw new UserException("User already exists");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex.Message);
|
||||||
|
if(ex is UserException)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
throw new UserException(ex.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +108,5 @@ namespace renis_backend.Services.Users
|
|||||||
string number = new string(Enumerable.Repeat("0123456789", 10).Select(c => c[random.Next(c.Length)]).ToArray());
|
string number = new string(Enumerable.Repeat("0123456789", 10).Select(c => c[random.Next(c.Length)]).ToArray());
|
||||||
return $"{prefix}{number}";
|
return $"{prefix}{number}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user