$APIToken = 'iXZU8DNKth2qWaDjDck9' $APIUrl = 'https://app3.archisnapper.com/api/public/v1/' $url_APIToken = '?auth_token=' + $APIToken $header = @{ auth_token = $APIToken } | ConvertTo-Json $OutputPathBase = "M:\N-Data\FieldReports\TestPath" # get list of projects # https://docs.archisnapper.com/reference/retrieving-your-projects $page = 1 # init counter do { $URI = $APIUrl + 'sites.json' + $url_APIToken + '&page=' + $page $response = Invoke-WebRequest -Uri $URI -Method Get $ProjectList = $response.Content | convertfrom-json foreach ($project in $ProjectList) { $project_Name = $Project.name $project_number = $project.unique_id $OutputPathBase_Project = $OutputPathBase + '\' + $project_number + '-' + $project_Name Write-Debug -Message ("Processing: $project_Name") -Debug # $project.visits | foreach -Parallel { # $pathExist = Test-Path $USING:OutputPathBase_Project -ErrorAction SilentlyContinue # if (!($pathExist)) { # New-Item -Path $USING:OutputPathBase_Project -ItemType Directory # } # if ($_) { # $testURI = $_.pdf_link + '&auth_token=' + $USING:APIToken # $Outfile = $USING:OutputPathBase_Project + '\' + $_.unique_id + ".pdf" # Invoke-WebRequest -Uri $testURI -OutFile $Outfile -TimeoutSec 300 # } # } -ThrottleLimit 5 foreach ($visit in $Project.visits) { $pathExist = Test-Path $OutputPathBase_Project -ErrorAction SilentlyContinue if (!($pathExist)) { New-Item -Path $OutputPathBase_Project -ItemType Directory } if ($visit) { Write-Debug -Message ("Checking " + $visit.unique_id) -Debug $testURI = $visit.pdf_link + '&auth_token=' + $APIToken $Outfile = $OutputPathBase_Project + '\' + $visit.unique_id + ".pdf" if (!(Test-Path $Outfile)) { Write-Debug ("Saving file: "+ $Outfile) -Debug Invoke-WebRequest -Uri $testURI -OutFile $Outfile } } } $page++ } } until ( $response.Content -eq $null )