public IActionResult UpdateBlog(int userId, int blogId, [FromBody] BlogForManipulationDto blog) { if (!_weblogDataRepository.UserExists(userId)) { return(NotFound()); } var emailAddress = blog.Credentials.EmailAddress; var password = blog.Credentials.Password; if (!_weblogDataRepository.Authorized(userId, emailAddress, password)) { return(Unauthorized()); } var blogFromRepo = _weblogDataRepository.GetBlog(blogId); if (blogFromRepo is null) { return(NotFound()); } _mapper.Map(blog, blogFromRepo); _weblogDataRepository.UpdateBlog(blogFromRepo); _weblogDataRepository.Save(); return(NoContent()); }
public IActionResult CreateBlog(int userId, [FromBody] BlogForManipulationDto blog, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId)) { return(NotFound()); } var emailAddress = blog.Credentials.EmailAddress; var password = blog.Credentials.Password; if (!_weblogDataRepository.Authorized(userId, emailAddress, password)) { return(Unauthorized()); } var blogEntity = _mapper.Map <Entities.Blog>(blog); _weblogDataRepository.AddBlog(userId, blogEntity); _weblogDataRepository.Save(); var blogToReturn = _mapper.Map <BlogDto>(blogEntity); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(CreatedAtRoute(nameof(GetBlog), new { userId, blogId = blogToReturn.BlogId }, blogToReturn)); } var links = CreateLinksForBlog(Url, userId, blogToReturn.BlogId); var blogWithLinks = new BlogDtoWithLinks(blogToReturn, links); return(CreatedAtRoute(nameof(GetBlog), new { userId, blogId = blogToReturn.BlogId }, blogWithLinks)); }