Example #1
0
        public async Task <IActionResult> Get()
        {
            var result = new CommonResult();

            if (CurrentUser == null)
            {
                return(StatusCode(401, result));
            }

            var request  = new TokenGetRequest(CurrentUser.Id);
            var response = await _integrationService.CreateToken(request);

            if (response.Status.IsNotSuccess)
            {
                result.Messages = response.ErrorMessages;
                return(StatusCode(401, result));
            }

            var model = new TokenResult
            {
                Token     = response.Item.AccessToken,
                CreatedAt = GetDateTimeAsString(response.Item.CreatedAt),
                ExpiresAt = GetDateTimeAsString(response.Item.ExpiresAt)
            };

            return(Json(model));
        }
Example #2
0
        public async Task <TokenCreateResponse> CreateToken(TokenGetRequest request)
        {
            var response = new TokenCreateResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            if (currentUser == null)
            {
                response.SetInvalid();
                return(response);
            }

            var integrationClient = await _integrationClientRepository.Select(x => x.OrganizationId == currentUser.OrganizationId && x.IsActive);

            if (integrationClient.IsNotExist())
            {
                response.SetInvalid();
                response.ErrorMessages.Add("integration_not_found");
                return(response);
            }

            if (await _organizationRepository.Any(x => x.Id == integrationClient.OrganizationId && !x.IsActive) ||
                await _integrationRepository.Any(x => x.Id == integrationClient.IntegrationId && !x.IsActive))
            {
                response.SetInvalid();
                response.ErrorMessages.Add("integration_client_not_found");
                return(response);
            }

            var token = _tokenFactory.CreateEntity(integrationClient);
            var id    = await _tokenRepository.Insert(integrationClient.Id, token);

            if (id > 0)
            {
                response.Item   = _tokenFactory.CreateDtoFromEntity(token);
                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }