Sample code for 30+ languages & platforms
React Native

GetHarvest - List Clients

See more GetHarvest Examples

Returns a list of your clients.

Chilkat React Native Downloads

React Native
import { Http, JsonObject, StringBuilder } from '@chilkat/react-native'

async function chilkatExample() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const http = new Http();

  // Implements the following CURL command:

  // curl "https://api.harvestapp.com/v2/clients" \
  //   -H "Authorization: Bearer ACCESS_TOKEN" \
  //   -H "Harvest-Account-Id: ACCOUNT_ID" \
  //   -H "User-Agent: MyApp (yourname@example.com)"

  http.setRequestHeader('User-Agent', 'MyApp (yourname@example.com)');
  http.setRequestHeader('Authorization', 'Bearer ACCESS_TOKEN');
  http.setRequestHeader('Harvest-Account-Id', 'ACCOUNT_ID');

  const sbResponseBody = new StringBuilder();
  try {
    await http.quickGetSbAsync('https://api.harvestapp.com/v2/clients', sbResponseBody);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  const jResp = new JsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  console.log('Response Body:');
  console.log(jResp.emit());

  const respStatusCode = http.lastStatus;
  console.log(`Response Status Code = ${respStatusCode}`);
  if (respStatusCode >= 400) {
    console.log('Response Header:');
    console.log(http.lastHeader);
    console.log('Failed.');
    return;
  }

  // Sample JSON response:

  // {
  //   "clients": [
  //     {
  //       "id": 5735776,
  //       "name": "123 Industries",
  //       "is_active": true,
  //       "address": "123 Main St.\r\nAnytown, LA 71223",
  //       "created_at": "2017-06-26T21:02:12Z",
  //       "updated_at": "2017-06-26T21:34:11Z",
  //       "currency": "EUR"
  //     },
  //     {
  //       "id": 5735774,
  //       "name": "ABC Corp",
  //       "is_active": true,
  //       "address": "456 Main St.\r\nAnytown, CT 06467",
  //       "created_at": "2017-06-26T21:01:52Z",
  //       "updated_at": "2017-06-26T21:27:07Z",
  //       "currency": "USD"
  //     }
  //   ],
  //   "per_page": 100,
  //   "total_pages": 1,
  //   "total_entries": 2,
  //   "next_page": null,
  //   "previous_page": null,
  //   "page": 1,
  //   "links": {
  //     "first": "https://api.harvestapp.com/v2/clients?page=1&per_page=100",
  //     "next": null,
  //     "previous": null,
  //     "last": "https://api.harvestapp.com/v2/clients?page=1&per_page=100"
  //   }
  // }

  // Sample code for parsing the JSON response...
  // Use the following online tool to generate parsing code from sample JSON:
  // Generate Parsing Code from JSON

  let i = 0;
  let id = 0;
  let name = '';
  let address = '';
  let createdAt = '';
  let updatedAt = '';
  let currency = '';

  const perPage = jResp.intOf('per_page');
  const totalPages = jResp.intOf('total_pages');
  const totalEntries = jResp.intOf('total_entries');
  const nextPage = jResp.stringOf('next_page');
  const previousPage = jResp.stringOf('previous_page');
  const page = jResp.intOf('page');
  const linksFirst = jResp.stringOf('links.first');
  const linksNext = jResp.stringOf('links.next');
  const linksPrevious = jResp.stringOf('links.previous');
  const linksLast = jResp.stringOf('links.last');
  i = 0;
  const countI = jResp.sizeOfArray('clients');
  while (i < countI) {
    jResp.i = i;
    id = jResp.intOf('clients[i].id');
    name = jResp.stringOf('clients[i].name');
    jResp.boolOf('clients[i].is_active');
    address = jResp.stringOf('clients[i].address');
    createdAt = jResp.stringOf('clients[i].created_at');
    updatedAt = jResp.stringOf('clients[i].updated_at');
    currency = jResp.stringOf('clients[i].currency');
    i++;
  }
}