Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • iknow-api/Services/Implementations/AuthService.cs

    rb38c39c rc155364  
    33using System.Text;
    44using BCrypt.Net;
    5 using iknow_api.Controllers;
     5using iknow_api.Services;
    66using iknow_api.Models;
    77using iknow_api.DTOs;
    … …  
    1414    {
    1515        private readonly IUserRepository _userRepository;
     16        private readonly IRefreshTokenRepository _refreshTokenRepository;
     17        private readonly IRefreshTokenService _refreshTokenService;
    1618        private readonly IConfiguration _configuration;
    1719
    18         public AuthService(IUserRepository userRepository, IConfiguration configuration)
     20        public AuthService(IUserRepository userRepository, IConfiguration configuration
     21                            , IRefreshTokenService refreshTokenService, IRefreshTokenRepository refreshTokenRepository)
    1922        {
    2023            _userRepository = userRepository;
    2124            _configuration = configuration;
     25            _refreshTokenService = refreshTokenService;
     26            _refreshTokenRepository = refreshTokenRepository;
    2227        }
    2328
    … …  
    4045
    4146            await _userRepository.AddUserAsync(user);
    42             int userId = user.Id;
    43             var contactInfo = new ContactInfo
    44             {
    45                 UserId = userId,
    46                 city = registerDto.city,
    47                 address = registerDto.address,
    48                 municipality = registerDto.municipality,
    49                 phoneNumber = registerDto.phoneNumber,
    50                 microsoftEmail = registerDto.microsoftEmail
    51             };
    52             await _userRepository.AddContactAsync(contactInfo);
    53             var enrollmentInfo = new EnrollmentInfo
    54             {
    55                 UserId = userId,
    56                 enrollmentYear = registerDto.enrollmentYear,
    57                 quota = (Models.quota)registerDto.quotaType,
    58                 major = (Models.major)registerDto.majorType
    59             };
    60             await _userRepository.AddEnrollmentAsync(enrollmentInfo);
    61             await _userRepository.AddHighSchoolAsync(new HighSchool
    62             {
    63                 UserId = userId,
    64                 GPA = registerDto.gpa,
    65                 tip = (Models.type)registerDto.tip
    66             });
    6747            return true;
    6848        }
    6949
    70         public async Task<string?> LoginAsync(LoginDto loginDto)
     50        public async Task<AuthResultDto?> LoginAsync(LoginDto loginDto)
    7151        {
    7252            var user = await _userRepository.GetUserByUsernameAsync(loginDto.Email);
    … …  
    7454                return null;
    7555
    76             return CreateToken(user);
     56             var result = new AuthResultDto
     57            {
     58                AccessToken = CreateToken(user)
     59            };
     60
     61            if (loginDto.GenerateRefreshToken)
     62            {
     63                int userid = _userRepository.GetUserByUsernameAsync(loginDto.Email).Id;
     64                result.RefreshToken = await _refreshTokenService.GenerateRefreshToken(userid);
     65            }
     66
     67            return result;
    7768        }
    7869
    … …  
    8071        {
    8172            return await _userRepository.GetUsersCountAsync();
     73        }
     74
     75        public async Task<AuthResultDto> GenerateNewJWT(VerifyRefreshTokenDto token)
     76        {
     77            int userid = await _refreshTokenRepository.GetUserId(token.token) ?? 0;
     78            User user = await _userRepository.GetOnlyUserByIdAsync(userid);
     79
     80            var result = new AuthResultDto
     81            {
     82                AccessToken = CreateToken(user)
     83            };
     84           
     85            return result;
    8286        }
    8387
Note: See TracChangeset for help on using the changeset viewer.