public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetExtendedInfoItem/{id}")] HttpRequest req, string id) { _logger.LogInformation("C# HTTP trigger function GetExtendedInfoItem processed a request."); string tenant = req.Headers[Constants.HEADER_TENANT]; if (String.IsNullOrWhiteSpace(tenant)) { tenant = null; } ServerSettings serverSettings = await _serverSettingsRepository.GetServerSettings(tenant); string keyWord = req.Headers[Constants.HEADER_KEYWORD]; if (String.IsNullOrEmpty(keyWord) || !(serverSettings.IsUser(keyWord))) { _logger.LogWarning("GetExtendedInfoItem called with wrong keyword."); return(new BadRequestErrorMessageResult("Keyword is missing or wrong.")); } // Get CalendarItem by id InfoItem rawInfoItem = await _cosmosRepository.GetItem(id); if (null == rawInfoItem) { return(new BadRequestErrorMessageResult("No InfoItem with given id found.")); } ExtendedInfoItem extendedItem = new ExtendedInfoItem(rawInfoItem); // Read all comments extendedItem.CommentsList = await _commentRepository.GetItems(c => c.CalendarItemId.Equals(extendedItem.Id)); return(new OkObjectResult(extendedItem)); }
public async Task <ExtendedInfoItem> GetExtendedInfoItem(string tenant, string keyword, string itemId) { ExtendedInfoItem infoItem = await $"https://{_functionsConfig.FunctionAppName}.azurewebsites.net/api/GetExtendedInfoItem/{itemId}" .WithHeader(HEADER_FUNCTIONS_KEY, _functionsConfig.ApiKey) .WithHeader(HEADER_KEYWORD, keyword) .WithHeader(HEADER_TENANT, tenant) .GetJsonAsync <ExtendedInfoItem>(); return(infoItem); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req) { _logger.LogInformation("C# HTTP trigger function GetExtendedInfoItems processed a request."); string tenant = req.Headers[Constants.HEADER_TENANT]; if (String.IsNullOrWhiteSpace(tenant)) { tenant = null; } ServerSettings serverSettings = await _serverSettingsRepository.GetServerSettings(tenant); string keyWord = req.Headers[Constants.HEADER_KEYWORD]; if (String.IsNullOrEmpty(keyWord) || !serverSettings.IsUser(keyWord)) { _logger.LogWarning("GetExtendedInfoItems called with wrong keyword."); return(new BadRequestErrorMessageResult("Keyword is missing or wrong.")); } IEnumerable <InfoItem> rawListOfInfoItems; if (null == tenant) { rawListOfInfoItems = await _cosmosRepository.GetItems(d => (d.Tenant ?? String.Empty) == String.Empty); } else { rawListOfInfoItems = await _cosmosRepository.GetItems(d => d.Tenant.Equals(tenant)); } List <ExtendedInfoItem> resultInfoItems = new List <ExtendedInfoItem>(10); foreach (InfoItem item in rawListOfInfoItems) { // Create ExtendedInfoItem and get comments ExtendedInfoItem extendedItem = new ExtendedInfoItem(item); resultInfoItems.Add(extendedItem); // Read all comments extendedItem.CommentsList = await _commentRepository.GetItems(c => c.CalendarItemId.Equals(extendedItem.Id)); } IEnumerable <ExtendedInfoItem> orderedList = resultInfoItems.OrderBy(d => d.OrderId); return(new OkObjectResult(orderedList)); }
public async Task <IActionResult> GetExtendedInfoItem([FromHeader(Name = "x-meetup-tenant")] string tenant, [FromHeader(Name = "x-meetup-keyword")] string keyword, [FromQuery] string itemId) { ExtendedInfoItem infoItem = await _meetUpFunctions.GetExtendedInfoItem(tenant, keyword, itemId); return(Ok(infoItem)); }