Swift
Swift
Populi Get Roles
See more Populi Examples
Demonstrates the Populi getRoles task.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = 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.
let xml = CkoXml()!
success = xml.loadFile(path: "qa_data/tokens/populi_token.xml")
var accessKey: String? = xml.getChildContent(tagPath: "access_key")
if xml.lastMethodSuccess != true {
print("Did not find the access_key")
return
}
let rest = CkoRest()!
// 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.
var bAutoReconnect: Bool = true
success = rest.connect(hostname: "yourcollege.populi.co", port: 443, tls: true, autoReconnect: bAutoReconnect)
if success != true {
print("\(rest.lastErrorText!)")
return
}
rest.authorization = accessKey
rest.addQueryParam(name: "task", value: "getRoles")
var responseBody: String? = rest.fullRequestFormUrlEncoded(httpVerb: "POST", uriPath: "/api/index.php")
if rest.lastMethodSuccess != true {
print("\(rest.lastErrorText!)")
return
}
// We should expect a 200 response if successful.
if rest.responseStatusCode.intValue != 200 {
print("Request Header: ")
print("\(rest.lastRequestHeader!)")
print("----")
print("Response StatusCode = \(rest.responseStatusCode.intValue)")
print("Response StatusLine: \(rest.responseStatusText!)")
print("Response Header:")
print("\(rest.responseHeader!)")
print("Response Body:")
print("\(responseBody!)")
return
}
xml.load(xmlData: responseBody)
print("\(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>
var i: Int
var count_i: Int
var id: Int
var name: String?
var inactive: Int
i = 0
count_i = xml.numChildrenHavingTag(tag: "role").intValue
while i < count_i {
xml.i = i
id = xml.getChildIntValue(tagPath: "role[i]|id").intValue
name = xml.getChildContent(tagPath: "role[i]|name")
inactive = xml.getChildIntValue(tagPath: "role[i]|inactive").intValue
i = i + 1
}
}