public async Task <IActionResult> RenewTokens([FromBody] AuthenticationTokens authenticationTokens)
        {
            int userId;

            try
            {
                userId = authenticationTokens.GetUserIdFromClaims(_configuration.GetSecretKey());
                await _loggingService.SaveAuditLog($"Refreshing tokens for user with user id {userId}",
                                                   AuditActionEnum.TokenRefresh);
            }
            catch (Exception)
            {
                return(BadRequest());
            }

            var refreshToken = await RetrieveRefreshToken(authenticationTokens.RefreshToken, userId);

            if (refreshToken == null || !_authenticationService.IsRefreshTokenValid(refreshToken))
            {
                return(BadRequest());
            }

            var newTokens = await _authenticationService.GenerateTokens(userId);

            await _loggingService.SaveAuditLog($"Deleting old refresh token for user with user id {userId}",
                                               AuditActionEnum.Delete);

            await _authenticationRepository.DeleteToken(refreshToken);

            return(Ok(newTokens));
        }
        public void Get_user_id_from_jwt_token_claims(string token, int expectedUserId)
        {
            var key =
                "qwertyuiopasdfghjklzxcvbnm123456lsh40897fsljlj4324ljk234k3jfsdfsdfsdfd45h34k5hg345lk3hg34jklg345kjhg345lkjh3g4534512312313dffsdf";
            var authenticationTokens = new AuthenticationTokens
            {
                AccessToken  = token,
                RefreshToken = "something"
            };

            var actualUserId = authenticationTokens.GetUserIdFromClaims(key);

            Assert.Equal(expectedUserId, actualUserId);
        }