示例#1
0
        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());
            }
        }
示例#2
0
        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());
            }
        }
示例#3
0
    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. :("));
    }
示例#4
0
        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));
        }
示例#5
0
        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));
        }