private IActionResult LikeOrUnlikeTweet(string tweetId, bool value) { var tweetLike = new TweetLikeData { TweetId = tweetId, PublicKey = Base58.Bitcoin.Encode(_publicKey.Bytes), PostedDate = DateTime.UtcNow }; var signatureBytes = _cryptoWrapper.StdSign(_privateKey, Encoding.UTF8.GetBytes($"{tweetLike.TweetId}{tweetLike.PublicKey}{value}{tweetLike.PostedDate}"), _signingContext.ToByteArray()).SignatureBytes; tweetLike.Signature = Base58.Bitcoin.Encode(signatureBytes); var client = new RestClient(_twitterModuleConfig.TwitterLikesApiUrl); var endpoint = value ? "Like" : "Unlike"; var request = new RestRequest($"/api/TweetLike/{endpoint}"); request.AddJsonBody(tweetLike); var response = client.Post(request); if (!response.IsSuccessful) { return(BadRequest(response.ErrorMessage)); } return(Ok()); }
public IActionResult Unlike(TweetLikeData tweetLikeData) { if (_tweetLikeService.Unlike(tweetLikeData)) { return(Ok()); } return(BadRequest()); }
private TweetLike MapTweetLikeToTweetLikeData(TweetLikeData tweetLikeData) { var tweetLike = new TweetLike { TweetId = tweetLikeData.TweetId, PublicKey = tweetLikeData.PublicKey, Signature = tweetLikeData.Signature, PostedDate = tweetLikeData.PostedDate }; return(tweetLike); }
private bool UpdateOrCreateTweetLike(TweetLikeData tweetLikeData, bool value) { var tweetLike = MapTweetLikeToTweetLikeData(tweetLikeData); tweetLike.Value = value; if (UpdateTweetLikeIfExists(tweetLike)) { return(true); } tweetLike.DocumentId = Guid.NewGuid().ToString(); _tweetLikeRepository.Add(tweetLike); return(true); }
public bool Unlike(TweetLikeData tweetLikeData) { return(UpdateOrCreateTweetLike(tweetLikeData, false)); }
public bool Like(TweetLikeData tweetLikeData) { return(UpdateOrCreateTweetLike(tweetLikeData, true)); }