public HttpResponseMessage PutTweet([FromBody] TweetRequestModel tweetRequestModel, string key) { var tweetKey = new Guid(key); var userToken = HttpContext.Current.User.Identity.Name; var userEmail = TokenManager.GetEmailFromToken(userToken); var user = _userManager.GetUserByEmail(userEmail); if (user != null) { if (ModelState.IsValid) { var tweet = _tweetManager.GetTweet(tweetKey); if (tweet != null) { if (tweet.User.Key == user.Key) { var updatedTweet = _tweetManager.UpdateTweet(tweet, tweetRequestModel.Message); return(Request.CreateResponse(HttpStatusCode.OK, updatedTweet.ToTweetDto())); } return(Request.CreateResponse(HttpStatusCode.Unauthorized)); //not tweet owner } } return(Request.CreateResponse(HttpStatusCode.BadRequest)); // model state not valid or tweet does not exist } return(Request.CreateResponse(HttpStatusCode.Unauthorized)); // invalid user or not logged in }
public static Tweet toTweet(this TweetRequestModel tweetRequestModel, User user) { return(new Tweet { Message = tweetRequestModel.Message, User = user }); }
public HttpResponseMessage PostTweet([FromBody] TweetRequestModel tweetRequestModel) { var userToken = HttpContext.Current.User.Identity.Name; var userEmail = TokenManager.GetEmailFromToken(userToken); var user = _userManager.GetUserByEmail(userEmail); if (user != null) { if (ModelState.IsValid) { var tweet = _tweetManager.CreateTweet(tweetRequestModel.toTweet(user)); return(Request.CreateResponse(HttpStatusCode.OK, tweet.ToTweetDto())); } return(Request.CreateResponse(HttpStatusCode.BadRequest)); } return(Request.CreateResponse(HttpStatusCode.Unauthorized)); }