Objective-C
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
#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;
}