public/Get-MoodleCurrentSessionInfo.ps1
function Get-MoodleCurrentSessionInfo { # [OutputType([MoodleSessionInfo])] [CmdletBinding()] param() $Url = $PsCmdlet.SessionState.PSVariable.GetValue("_MoodleUrl") $Token = $PsCmdlet.SessionState.PSVariable.GetValue("_MoodleToken") if (!$Url -or !$Token) { throw "You must call the Connect-Moodle cmdlet before calling any other cmdlets." } $function = 'core_webservice_get_site_info' $path = "webservice/rest/server.php?wstoken=$Token&wsfunction=$function&moodlewsrestformat=json" $result = Invoke-RestMethod -Uri ([uri]::new($Url, $path)) New-Object -TypeName MoodleSessionInfo -Property @{ SiteName = $result.sitename SiteUrl = $result.siteurl UserId = $result.userid UserName = $result.username FirstName = $result.firstname LastName = $result.lastname } } |