public Task <ITwitterResult <ITweetDTO[]> > GetTweetsAsync(IGetTweetsParameters parameters, ITwitterRequest request)
        {
            var query = _tweetQueryGenerator.GetTweetsQuery(parameters, request.ExecutionContext.TweetMode);

            request.Query.Url        = query;
            request.Query.HttpMethod = HttpMethod.GET;
            return(_twitterAccessor.ExecuteRequestAsync <ITweetDTO[]>(request));
        }
Exemple #2
0
        public void Validate(IGetTweetsParameters parameters)
        {
            _tweetsClientRequiredParametersValidator.Validate(parameters);

            var maxPageSize = Limits.TWEETS_GET_TWEETS_REQUEST_MAX_SIZE;

            if (parameters.Tweets.Length > maxPageSize)
            {
                throw new TwitterArgumentLimitException($"{nameof(parameters)}.{nameof(parameters.Tweets)}", maxPageSize, nameof(Limits.TWEETS_GET_TWEETS_REQUEST_MAX_SIZE), "items");
            }
        }
Exemple #3
0
        public async Task <ITweet[]> GetTweetsAsync(IGetTweetsParameters parameters)
        {
            if (parameters.Tweets == null || parameters.Tweets.Length == 0)
            {
                return(new ITweet[0]);
            }

            var requestResult = await _tweetsRequester.GetTweetsAsync(parameters).ConfigureAwait(false);

            return(_client.Factories.CreateTweets(requestResult?.Model));
        }
        public string GetTweetsQuery(IGetTweetsParameters parameters, ComputedTweetMode tweetMode)
        {
            var query = new StringBuilder(Resources.Tweet_Lookup);

            var validTweetIdentifiers = parameters.Tweets.Where(x => GetTweetId(x) != null);
            var tweetIds = validTweetIdentifiers.Select(GetTweetId);

            query.AddParameterToQuery("id", string.Join(",", tweetIds));
            query.AddParameterToQuery("include_card_uri", parameters.IncludeCardUri);
            query.AddParameterToQuery("include_entities", parameters.IncludeEntities);
            query.AddParameterToQuery("include_ext_alt_text", parameters.IncludeExtAltText);
            query.AddParameterToQuery("trim_user", parameters.TrimUser);
            query.AddParameterToQuery("tweet_mode", tweetMode);

            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);

            return(query.ToString());
        }
Exemple #5
0
        public void Validate(IGetTweetsParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (parameters.Tweets == null)
            {
                throw new ArgumentNullException();
            }

            if (parameters.Tweets.Length == 0)
            {
                throw new ArgumentException("You need at least 1 tweet id", $"{nameof(parameters)}.{nameof(parameters.Tweets)}");
            }

            var validTweetIdentifiers = parameters.Tweets.Where(x => x?.Id != null || !string.IsNullOrEmpty(x?.IdStr));

            if (!validTweetIdentifiers.Any())
            {
                throw new ArgumentException("There are no valid tweet identifiers", $"{nameof(parameters)}.{nameof(parameters.Tweets)}");
            }
        }
Exemple #6
0
 public void Validate(IGetTweetsParameters parameters)
 {
     _tweetsClientParametersValidator.Validate(parameters);
 }
 public Task <ITwitterResult <ITweetDTO[]> > GetTweets(IGetTweetsParameters parameters, ITwitterRequest request)
 {
     return(_tweetQueryExecutor.GetTweets(parameters, request));
 }
Exemple #8
0
 public Task <ITwitterResult <ITweetDTO[]> > GetTweetsAsync(IGetTweetsParameters parameters)
 {
     _tweetsClientRequiredParametersValidator.Validate(parameters);
     return(ExecuteRequestAsync(request => _tweetController.GetTweetsAsync(parameters, request)));
 }