Functions/Get-BricksetRecentlyUpdatedSet.psm1
function Get-BricksetRecentlyUpdatedSet { <# .SYNOPSIS Get Brickset Sets that have recently changed .DESCRIPTION Get Brickset Sets that have recently changed .PARAMETER APIKey API Key .PARAMETER HoursAgo Number of hours to search back for .PARAMETER DaysAgo Number of days to search back for .PARAMETER WeeksAgo Number of weeks to search back for .PARAMETER MonthsAgo Number of months to search back for .INPUTS System.String. System.Int .OUTPUTS Brickset.sets .EXAMPLE Get-BricksetRecentlyUpdatedSet -APIKey 'Tk5C-KTA2-Gw2Q' -DaysAgo 5 #> [CmdletBinding(DefaultParameterSetName='HoursAgo')][OutputType('Brickset.sets')] Param ( [parameter(Mandatory=$false)] [ValidateNotNullOrEmpty()] [String]$APIKey, [parameter(Mandatory=$true,ParameterSetName='HoursAgo')] [ValidateNotNullOrEmpty()] [Int]$HoursAgo, [parameter(Mandatory=$true,ParameterSetName='DaysAgo')] [ValidateNotNullOrEmpty()] [Int]$DaysAgo, [parameter(Mandatory=$true,ParameterSetName='WeeksAgo')] [ValidateNotNullOrEmpty()] [Int]$WeeksAgo, [parameter(Mandatory=$true,ParameterSetName='MonthsAgo')] [ValidateNotNullOrEmpty()] [Int]$MonthsAgo ) try { # --- If $APIKey not supplied, try $Global:BricksetAPIKey if (!($PSBoundParameters.ContainsKey('APIKey'))){ try { Get-Variable BricksetAPIKey | Out-Null $APIKey = $BricksetAPIKey } catch [Exception] { throw 'Brickset API Key not specified nor exists in $Global:BricksetAPIKey. Please set this to continue' } } # --- Determine time to look back for switch ($PsCmdlet.ParameterSetName) { "HoursAgo" { $MinutesAgo = $HoursAgo * 60; break} "DaysAgo" { $MinutesAgo = $DaysAgo * 60 * 24; break} "WeeksAgo" { $MinutesAgo = $WeeksAgo * 60 * 24 * 7; break} "MonthsAgo" { $MinutesAgo = ((Get-Date) - ((Get-Date).AddMonths($MonthsAgo * -1))).TotalMinutes; break} } # --- Make the Webservice Call if (!($Webservice)){ $Global:Webservice = New-WebServiceProxy -Uri 'http://brickset.com/api/v2.asmx?WSDL' -Namespace 'Brickset' -Class 'Sets' } $Webservice.getRecentlyUpdatedSets($APIKey,$MinutesAgo) } catch [Exception]{ throw "Unable to get Brickset Recently Updated Sets" } } |