public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestMessage req, ILogger log, CancellationToken cancellationToken) { var authHeader = req.Headers.Authorization; if (authHeader == null) { log.LogWarning("Missing or invalid authorization header!"); return(new UnauthorizedResult()); } bool isAuthorized = await authService.ValidateTokenAsync(authHeader.Parameter, cancellationToken); if (!isAuthorized) { log.LogWarning("Unauthorized call."); return(new UnauthorizedResult()); } var command = new GetQuarantineListQuery(); var result = await mediator.Send(command, cancellationToken); return(new OkObjectResult(result)); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestMessage req, ILogger log, CancellationToken cancellationToken) { var qs = req.RequestUri.ParseQueryString(); var allKeys = qs.AllKeys; if (!allKeys.Contains("apiKey")) { return(new BadRequestErrorMessageResult("Missing query param: apiKey")); } var apiKey = qs["apiKey"]; bool isAuthorized = apiKey == Environment.GetEnvironmentVariable("NcziApiKey"); if (!isAuthorized) { log.LogWarning("Unauthorized call."); return(new UnauthorizedResult()); } var from = DateTime.Parse(qs["since"]); var command = new GetQuarantineListQuery(from); var result = await mediator.Send(command, cancellationToken); return(new OkObjectResult(result)); }