Sample code for 30+ languages & platforms
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

Ruby
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