Sample code for 30+ languages & platforms
PowerShell

Populi Get Roles

See more Populi Examples

Demonstrates the Populi getRoles task.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# First load the previously obtained API token.
# See Get Populi Access Token for sample code showing how to get the API token.
$xml = New-Object Chilkat.Xml
$success = $xml.LoadXmlFile("qa_data/tokens/populi_token.xml")
$accessKey = $xml.GetChildContent("access_key")
if ($xml.LastMethodSuccess -ne $true) {
    $("Did not find the access_key")
    exit
}

$rest = New-Object Chilkat.Rest

# Connect using TLS.
# A single REST object, once connected, can be used for many Populi REST API calls.
# The auto-reconnect indicates that if the already-established HTTPS connection is closed,
# then it will be automatically re-established as needed.
$bAutoReconnect = $true
$success = $rest.Connect("yourcollege.populi.co",443,$true,$bAutoReconnect)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$rest.Authorization = $accessKey

$rest.AddQueryParam("task","getRoles")

$responseBody = $rest.FullRequestFormUrlEncoded("POST","/api/index.php")
if ($rest.LastMethodSuccess -ne $true) {
    $($rest.LastErrorText)
    exit
}

# We should expect a 200 response if successful.
if ($rest.ResponseStatusCode -ne 200) {
    $("Request Header: ")
    $($rest.LastRequestHeader)
    $("----")
    $("Response StatusCode = " + $rest.ResponseStatusCode)
    $("Response StatusLine: " + $rest.ResponseStatusText)
    $("Response Header:")
    $($rest.ResponseHeader)
    $("Response Body:")
    $($responseBody)
    exit
}

$xml.LoadXml($responseBody)
$($xml.GetXml())

# Sample response:
# Use this online tool to generate parsing code from sample XML: 
# Generate Parsing Code from XML

# <?xml version="1.0" encoding="ISO-8859-1"?>
# <response>
#     <role>
#         <id>7</id>
#         <name>Academic Admin</name>
#         <inactive>0</inactive>
#     </role>
#     <role>
#         <id>19</id>
#         <name>Financial Aid</name>
#         <inactive>0</inactive>
#     </role>
#     <role>
#         <id>15</id>
#         <name>Registrar</name>
#         <inactive>0</inactive>
#     </role>
#     <role>
#         <id>4</id>
#         <name>Staff</name>
#         <inactive>0</inactive>
#     </role>
#     <role>
#         <id>1</id>
#         <name>Everyone</name>
#         <inactive>0</inactive>
#     </role>
# </response>

$i = 0
$count_i = $xml.NumChildrenHavingTag("role")
while ($i -lt $count_i) {
    $xml.I = $i
    $id = $xml.GetChildIntValue("role[i]|id")
    $name = $xml.GetChildContent("role[i]|name")
    $inactive = $xml.GetChildIntValue("role[i]|inactive")
    $i = $i + 1
}