public async Task CreateAsync_WhenCalledWithValidBeer_LogsInformation() { _beerService.CreateAsync(Arg.Any <Beer>()).Returns(_beer); await _controller.CreateAsync(_beerRequest); _logger.Received(2).Information(Arg.Any <string>()); }
public async Task <ActionResult <Beer> > CreateAsync([FromBody] BeerRequest createBeerRequest) { if (!ModelState.IsValid) { _logger.Warning("Request to create beer has been denied. Beer model is invalid"); return(BadRequest(ModelState)); } try { _logger.Information($"Creating beer with name: {createBeerRequest.Name}."); var beer = new Beer { Name = createBeerRequest.Name, Style = createBeerRequest.Style, Brewery = createBeerRequest.Brewery, Abv = createBeerRequest.Abv }; var createdBeer = await _beerService.CreateAsync(beer); _logger.Information($"Successfully created beer with name: {createdBeer.Name}."); // uses return from db to send in the response; refers to named endpoint return(CreatedAtRoute("GetBeer", new { id = createdBeer.BeerId }, createdBeer)); } catch (Exception ex) { _logger.Error(ex, $"Request to create beer with name: {createBeerRequest.Name} failed."); return(StatusCode(500)); } }
public async Task <IActionResult> CreateBeer([FromBody] CreateBeer createDTO) { try { var userId = HttpContext.User.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; if (createDTO == null) { return(BadRequest(new ValidationErrorResponse(new ValidationErrorModel("Name", "Beer cannot be null.")))); } var entityToCreate = _mapper.Map <Beer>(createDTO); entityToCreate.UserId = userId; var entity = await _beerService.CreateAsync(entityToCreate); var view = _mapper.Map <ViewBeer>(entity); return(Ok(view)); } catch { return(StatusCode(500)); } }