public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("Received log job request."); var claims = await _authenticationHelper.DecodeToken(req.Headers["Authorization"]); if (claims == null || !claims.Identity.IsAuthenticated) { log.LogInformation("Unauthorised request received."); return(new UnauthorizedResult()); } NewJob newJob; try { newJob = JsonConvert.DeserializeObject <NewJob>(await req.ReadAsStringAsync()); } catch (JsonException) { return(new BadRequestResult()); } var val = new NewJobValidator(); var res = await val.ValidateAsync(newJob); if (!res.IsValid) { log.LogInformation("Invalid request received."); return(new BadRequestResult()); } var storeRes = await _shiftService.AddJob(claims.Identity.Name, newJob); if (storeRes) { return(new OkResult()); } return(new BadRequestResult()); }