functions/Get-BBCourses.ps1

<#
.Synopsis
   Gets courses from blackboard learn. Uses v3
.DESCRIPTION
   Gets courses from blackboard learn. If given a CourseID, it will use that. It passes filters along to invoke-bbrestmethod and supports whatever filters the rest api supports.
.EXAMPLE
   Get-BBCourses
.EXAMPLE
   $CurrentTerms = Get-BBTerms -TargetTerm 'AllCurrent'
   $Courses = @()
   foreach($Term in $CurrentTerms){
      $Courses += Get-BBCourses -Filter "termId=$($Term.id)" -Verbose
   }
.EXAMPLE
   Get-BBCourses -CourseID 'externalId:30700'
#>

function Get-BBCourses
{
    [CmdletBinding()]
    [Alias()]
    Param
    (
        [string]$CourseID,
        [string]$Filter
    )

    Begin
    {

    }
    Process
    {
        if (!$CourseID -eq ""){
            $apiurl = "/learn/api/public/v3/courses/$CourseID"
          }else{
            $apiurl = "/learn/api/public/v3/courses"
          }


      Invoke-BBRestMethod -API $apiurl `
                -Method Get `
                -ContentType application/json `
                -Filter $Filter
    }
    End
    {
    }
}