Ruby
Ruby
Xero Get Folders (Files API)
Demonstrates how to retrieve the list of folders.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat Ruby Downloads
require 'chilkat'
success = false
# Note: Requires Chilkat v9.5.0.64 or greater.
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
rest = Chilkat::CkRest.new()
# Before sending REST API calls, the REST object needs to be
# initialized for OAuth1.
# See Xero 2-Legged OAuth1 Setup for sample code.
# Assuming the REST object's OAuth1 authenticator is setup, and the initial
# connection was made, we may now send REST HTTP requests..
# Get the full list of folders (in the FILES API)
sbJson = Chilkat::CkStringBuilder.new()
success = rest.FullRequestNoBodySb("GET","/files.xro/1.0/Folders",sbJson)
if (success != true)
print rest.lastErrorText() + "\n";
exit
end
# The response is a JSON array.
jsonArr = Chilkat::CkJsonArray.new()
jsonArr.LoadSb(sbJson)
jsonArr.put_EmitCompact(false)
# A 200 response is expected for actual success.
if (rest.get_ResponseStatusCode() != 200)
print jsonArr.emit() + "\n";
exit
end
print jsonArr.emit() + "\n";
# The JSON list of folders looks like this:
# See the code below showing how to iterate over the folders..
# [
# {
# "Name": "Inbox",
# "FileCount": 0,
# "Email": "xero.inbox.bt0xx.99ha3l7a28m7ghyn@xerofiles.com",
# "IsInbox": true,
# "Id": "de386667-2532-49d3-8ad8-b7727b128ea2"
# },
# {
# "Name": "Contracts",
# "FileCount": 0,
# "IsInbox": false,
# "Id": "36f15a6e-74f3-42fd-8797-e288b9aae234"
# },
# {
# "Name": "Images",
# "FileCount": 0,
# "IsInbox": false,
# "Id": "0ffca059-f2f1-4271-8de9-4b87c8c2c638"
# }
# ]
i = 0
numFolders = jsonArr.get_Size()
while i < numFolders
# json is a CkJsonObject
json = jsonArr.ObjectAt(i)
print "Name: " + json.stringOf("Name") + "\n";
print "FileCount: " + json.IntOf("FileCount").to_s() + "\n";
print "IsInbox: " + json.BoolOf("IsInbox").to_s() + "\n";
print "Id: " + json.stringOf("Id") + "\n";
print "--" + "\n";
i = i + 1
end