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)); }
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); }