public async Task <IActionResult> UpdateTags( [HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Put), Route = "{userId}/" + BasePath)] HttpRequest httpRequest, [Table(TableNames.Tag)] CloudTable cloudTable, string userId, ILogger logger) { if (await httpRequest.Authenticate(SecurityOptions, userId, logger) == AuthenticationStatus.Unauthenticated) { return(new UnauthorizedResult()); } try { var result = await httpRequest.GetValidatedJsonBody <Tag, TagValidator>(); if (!result.IsValid) { return(result.ToBadRequest()); } var model = cloudTable.UpdateEntity(new TagTableEntity(userId, result.Value.Id.ToString(), result.Value)); return(new OkObjectResult(model)); } catch (StorageException ex) when(ex.RequestInformation.HttpStatusCode == 404) { return(new NotFoundResult()); } }
public async Task <IActionResult> DeleteTags( [HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Delete), Route = "{userId}/" + BasePath + "/{id}")] HttpRequest httpRequest, [Table(TableNames.Tag)] CloudTable cloudTable, string userId, Guid id, ILogger logger) { if (await httpRequest.Authenticate(SecurityOptions, userId, logger) == AuthenticationStatus.Unauthenticated) { return(new UnauthorizedResult()); } try { var model = cloudTable.DeleteEntity <TagTableEntity>(userId, id.ToString()); if (model == null) { return(new NotFoundResult()); } return(new OkObjectResult(model.MapTo())); } catch (StorageException ex) when(ex.RequestInformation.HttpStatusCode == 404) { return(new NotFoundResult()); } }
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, TraceWriter log) { log.Info("C# HTTP trigger function processed a request."); var authentication = req.Authenticate(); return(authentication != null ? (ActionResult) new OkObjectResult($"Hello, {authentication.UserId}") : new BadRequestObjectResult("Authentication not found. :(")); }
public async Task <IActionResult> GetTags( [HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Get), Route = "{userId}/" + BasePath)] HttpRequest httpRequest, [Table(TableNames.Tag)] CloudTable cloudTable, string userId, ILogger logger) { if (await httpRequest.Authenticate(SecurityOptions, userId, logger) == AuthenticationStatus.Unauthenticated) { return(new UnauthorizedResult()); } var models = cloudTable.RetrieveEntities <TagTableEntity>(userId).Select(o => o.MapTo()); if (models.Count() == 0) { return(new NotFoundResult()); } return(new OkObjectResult(models)); }
public async Task <IActionResult> GetTagsById( [HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Get), Route = "{userId}/" + BasePath + "/{id}")] HttpRequest httpRequest, [Table(TableNames.Tag)] CloudTable cloudTable, string userId, Guid id, ILogger logger) { if (await httpRequest.Authenticate(SecurityOptions, userId, logger) == AuthenticationStatus.Unauthenticated) { return(new UnauthorizedResult()); } var model = cloudTable.RetrieveEntity <TagTableEntity>(userId, id.ToString()).MapTo(); if (model == null) { return(new NotFoundResult()); } return(new OkObjectResult(model)); }