public async Task <IActionResult> AddProduct([HttpTrigger(AuthorizationLevel.Function, "post", Route = "products")] HttpRequest request) { var productModel = await request.DeserializeBody <ProductEditableModel>(); var newProduct = new Product(productModel.Name, productModel.Price); repository.AddProduct(newProduct); return(ActionResults.Created($"/api/products/{newProduct.Id}", newProduct)); }
public async Task <IActionResult> AddReview([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "reviews/{productId}")] HttpRequest request, string productId) { var reviewModel = await request.DeserializeBody <ReviewRequestModel>(); var review = new Review(reviewModel.NumberOfStarts, reviewModel.Description); repository.AddProductReview(productId, review); return(ActionResults.Created()); }
public async Task <IActionResult> AddPromotion([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "promotions")] HttpRequest request) { var promotionRequest = await request.DeserializeBody <AddPromotionRequestModel>(); var promotionRequestValidation = promotionRequest.Validate(); if (promotionRequestValidation.Any()) { return(new BadRequestObjectResult(promotionRequestValidation)); } repository.AddPromotion(new Promotion(promotionRequest)); return(ActionResults.Created()); }