示例#1
0
        public ActionResult <Consumption> Post(ConsumptionRequest request)
        {
            string loggedUser = User.FindFirstValue("userId");

            if (loggedUser == null)
            {
                return(Unauthorized());
            }

            ValidationResult result = validator.Validate(request);

            if (!result.IsValid)
            {
                return(BadRequest(new ValidationSummary(result)));
            }

            try
            {
                Consumption consumption = consumptionService.CreateConsumption(request);

                if (consumption == null)
                {
                    return(StatusCode(500));
                }

                return(CreatedAtAction(nameof(Get), null, consumption));
            }
            catch (SkrillaApiException e)
            {
                if ("not_found".Equals(e.Code))
                {
                    return(NotFound());
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
        }