Sample code for 30+ languages & platforms
Objective-C

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 Objective-C Downloads

Objective-C
#import <CkoRest.h>
#import <CkoStringBuilder.h>
#import <CkoJsonArray.h>
#import <CkoJsonObject.h>

BOOL success = NO;

// 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.

CkoRest *rest = [[CkoRest alloc] init];

// 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)
CkoStringBuilder *sbJson = [[CkoStringBuilder alloc] init];
success = [rest FullRequestNoBodySb: @"GET" uriPath: @"/files.xro/1.0/Folders" sb: sbJson];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

// The response is a JSON array.
CkoJsonArray *jsonArr = [[CkoJsonArray alloc] init];
[jsonArr LoadSb: sbJson];
jsonArr.EmitCompact = NO;

// A 200 response is expected for actual success.
if ([rest.ResponseStatusCode intValue] != 200) {
    NSLog(@"%@",[jsonArr Emit]);
    return;
}

NSLog(@"%@",[jsonArr Emit]);

// 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"
// 	  }
// 	]

int i = 0;
int numFolders = [jsonArr.Size intValue];
while (i < numFolders) {
    CkoJsonObject *json = [jsonArr ObjectAt: [NSNumber numberWithInt: i]];
    NSLog(@"%@%@",@"Name: ",[json StringOf: @"Name"]);
    NSLog(@"%@%d",@"FileCount: ",[[json IntOf: @"FileCount"] intValue]);
    NSLog(@"%@%d",@"IsInbox: ",[json BoolOf: @"IsInbox"]);
    NSLog(@"%@%@",@"Id: ",[json StringOf: @"Id"]);
    NSLog(@"%@",@"--");

    i = i + 1;
}