Skip to content

Commit

Permalink
Add NoPagination switch closes #102
Browse files Browse the repository at this point in the history
  • Loading branch information
thedavecarroll committed Aug 15, 2022
1 parent 58b213c commit c8df60e
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 20 deletions.
2 changes: 1 addition & 1 deletion BluebirdPS/public/api/Invoke-TwitterRequest.ps1
Expand Up @@ -72,7 +72,7 @@ function Invoke-TwitterRequest {
$ResponseData = [ResponseData]::new($RequestParameters,$Authentication,$ResponseHeaders,$LastStatusCode,$ApiResponse)
Write-TwitterResponse -ResponseData $ResponseData

if ($ResponseData.ApiResponse.psobject.Properties.Name -match 'meta|next_cursor') {
if ($ResponseData.ApiResponse.psobject.Properties.Name -match 'meta|next_cursor' -and -Not $RequestParameters.NoPagination) {

$Progress = @{
Activity = 'Retrieving paged results from Twitter API'
Expand Down
17 changes: 13 additions & 4 deletions BluebirdPS/public/api_v2/tweets/Get-TwitterTimeline.ps1
Expand Up @@ -22,19 +22,28 @@ function Get-TwitterTimeline {
[string]$UntilId,

[switch]$IncludeExpansions,

[switch]$NonPublicMetrics,
[switch]$PromotedMetrics,
[switch]$OrganicMetrics
[switch]$OrganicMetrics,

[ValidateRange(10,100)]
[int]$MaxResultsPerPage=100,
[switch]$NoPagination
)

if ($MaxResultsPerPage -lt 100) {
$NoPagination = $true
}

$Request = [TwitterRequest]@{
Endpoint = $Endpoint
Query = @{ 'max_results' = $MaxResultsPerPage }
ExpansionType = 'Tweet'
IncludeExpansions = $IncludeExpansions
NoPagination = $NoPagination
NonPublicMetrics = $NonPublicMetrics
PromotedMetrics = $PromotedMetrics
OrganicMetrics = $OrganicMetrics
IncludeExpansions = $IncludeExpansions
Query = @{ 'max_results' = 100 }
}

switch ($PSCmdlet.ParameterSetName) {
Expand Down
19 changes: 13 additions & 6 deletions BluebirdPS/public/api_v2/tweets/Search-Tweet.ps1
Expand Up @@ -5,26 +5,33 @@ function Search-Tweet {
[ValidateNotNullOrEmpty()]
[string]$SearchString,

[switch]$IncludeExpansions,

[ValidateRange(10,100)]
[int]$MaxResults=100,
[int]$MaxResultsPerPage=100,
[switch]$NoPagination,

[switch]$NonPublicMetrics,
[switch]$PromotedMetrics,
[switch]$OrganicMetrics,
[switch]$IncludeExpansions
[switch]$OrganicMetrics
)

if ($MaxResultsPerPage -lt 100) {
$NoPagination = $true
}

$Request = [TwitterRequest]@{
ExpansionType = 'Tweet'
Endpoint = 'https://api.twitter.com/2/tweets/search/recent'
Query = @{
'query' = $SearchString
'max_results' = $MaxResults
'max_results' = $MaxResultsPerPage
}
ExpansionType = 'Tweet'
IncludeExpansions = $IncludeExpansions
NoPagination = $NoPagination
NonPublicMetrics = $NonPublicMetrics
PromotedMetrics = $PromotedMetrics
OrganicMetrics = $OrganicMetrics
IncludeExpansions = $IncludeExpansions
}

Invoke-TwitterRequest -RequestParameters $Request
Expand Down
@@ -1,14 +1,23 @@
function Get-TwitterBlockedUser {
[CmdletBinding()]
param(
[switch]$IncludeExpansions
[switch]$IncludeExpansions,

[ValidateRange(1,1000)]
[int]$MaxResultsPerPage=1000,
[switch]$NoPagination
)

if ($MaxResultsPerPage -lt 1000) {
$NoPagination = $true
}

$Request = [TwitterRequest]@{
Endpoint = 'https://api.twitter.com/2/users/{0}/blocking' -f $BluebirdPSConfiguration.AuthUserId
Query = @{'max_results' = $MaxResultsPerPage }
ExpansionType = 'User'
IncludeExpansions = $IncludeExpansions
Query = @{ 'max_results' = 1000 }
NoPagination = $NoPagination
}

Invoke-TwitterRequest -RequestParameters $Request
Expand Down
Expand Up @@ -9,7 +9,11 @@ function Get-TwitterFollowers {
[ValidateObjectNotNullOrEmpty()]
[BluebirdPS.APIV2.UserInfo.User]$User,

[switch]$IncludeExpansions
[switch]$IncludeExpansions,

[ValidateRange(1,1000)]
[int]$MaxResultsPerPage=1000,
[switch]$NoPagination
)

switch ($PSCmdlet.ParameterSetName) {
Expand All @@ -24,12 +28,16 @@ function Get-TwitterFollowers {
$Endpoint = 'https://api.twitter.com/2/users/{0}/followers' -f $User.Id
}
}
if ($MaxResultsPerPage -lt 1000) {
$NoPagination = $true
}

$Request = [TwitterRequest]@{
ExpansionType = 'User'
Endpoint = $Endpoint
Query = @{'max_results' = 1000 }
Query = @{'max_results' = $MaxResultsPerPage }
ExpansionType = 'User'
IncludeExpansions = $IncludeExpansions
NoPagination = $NoPagination
}

Invoke-TwitterRequest -RequestParameters $Request
Expand Down
Expand Up @@ -9,7 +9,11 @@ function Get-TwitterFriends {
[ValidateObjectNotNullOrEmpty()]
[BluebirdPS.APIV2.UserInfo.User]$User,

[switch]$IncludeExpansions
[switch]$IncludeExpansions,

[ValidateRange(1,1000)]
[int]$MaxResultsPerPage=1000,
[switch]$NoPagination
)

switch ($PSCmdlet.ParameterSetName) {
Expand All @@ -24,12 +28,16 @@ function Get-TwitterFriends {
$Endpoint = 'https://api.twitter.com/2/users/{0}/following' -f $User.Id
}
}
if ($MaxResultsPerPage -lt 1000) {
$NoPagination = $true
}

$Request = [TwitterRequest]@{
ExpansionType = 'User'
Endpoint = $Endpoint
Query = @{'max_results' = 1000 }
Query = @{'max_results' = $MaxResultsPerPage }
ExpansionType = 'User'
IncludeExpansions = $IncludeExpansions
NoPagination = $NoPagination
}

Invoke-TwitterRequest -RequestParameters $Request
Expand Down
2 changes: 1 addition & 1 deletion src/TwitterRequest.cs
Expand Up @@ -24,9 +24,9 @@ public class TwitterRequest
public bool PromotedMetrics { get; set; }
public bool OrganicMetrics { get; set; }
public bool IncludeExpansions { get; set; }
public bool NoPagination { get; set; } = false;
public string CommandName { get; private set; }
public InvocationInfo InvocationInfo { get; private set; }

private bool _hasExpansionsIncluded { get; set; }
private bool _hasFieldsIncluded { get; set; }

Expand Down

0 comments on commit c8df60e

Please sign in to comment.