Sample code for 30+ languages & platforms
Objective-C

Xero Get a Filtered Set of Resources (Get all SALES Accounts)

Demonstrates how to add the "where" parameter to get a filtered set of resources. See Get Filtered Resources.

This example gets the accounts where the Type = "SALES".

Note: Requires Chilkat v9.5.0.64 or greater.

Chilkat Objective-C Downloads

Objective-C
#import <CkoRest.h>
#import <CkoStringBuilder.h>
#import <CkoXml.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..

//  ------------------------------------------------------------
//  Add the "where" parameter.
[rest AddQueryParam: @"where" value: @"Type==\"SALES\""];

//  Get the full list of accounts.
CkoStringBuilder *sbXml = [[CkoStringBuilder alloc] init];
success = [rest FullRequestNoBodySb: @"GET" uriPath: @"/api.xro/2.0/Accounts" sb: sbXml];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

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

//  Iterate over the accounts and get some information..

BOOL bAutoTrim = NO;
CkoXml *xml = [[CkoXml alloc] init];
[xml LoadSb: sbXml autoTrim: bAutoTrim];

//  How many accounts exist?
int numAccounts = [[xml NumChildrenAt: @"Accounts"] intValue];
NSLog(@"%@%d",@"numAccounts = ",numAccounts);

int i = 0;
while (i < numAccounts) {
    xml.I = [NSNumber numberWithInt: i];
    NSLog(@"%@%@",@"AccountID: ",[xml GetChildContent: @"Accounts|Account[i]|AccountID"]);
    NSLog(@"%@%@",@"Name: ",[xml GetChildContent: @"Accounts|Account[i]|Name"]);
    NSLog(@"%@%d",@"Code: ",[[xml GetChildIntValue: @"Accounts|Account[i]|Code"] intValue]);
    NSLog(@"%@%d",@"EnablePaymentsToAccount: ",[xml GetChildBoolValue: @"Accounts|Account[i]|EnablePaymentsToAccount"]);
    NSLog(@"%@",@"----");
    i = i + 1;
}