示例#1
0
        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
        }
示例#2
0
 public static Tweet toTweet(this TweetRequestModel tweetRequestModel, User user)
 {
     return(new Tweet
     {
         Message = tweetRequestModel.Message,
         User = user
     });
 }
示例#3
0
        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));
        }