Sample code for 30+ languages & platforms
Dart

GetHarvest - List Clients

See more GetHarvest Examples

Returns a list of your clients.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

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

  final http = CkHttp();

  // 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');

  final sbResponseBody = CkStringBuilder();
  try {
    http.quickGetSb('https://api.harvestapp.com/v2/clients', sbResponseBody);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final jResp = CkJsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  print('Response Body:');
  print(jResp.emit());

  final respStatusCode = http.lastStatus;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode >= 400) {
    print('Response Header:');
    print(http.lastHeader);
    print('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

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

  final perPage = jResp.intOf('per_page');
  final totalPages = jResp.intOf('total_pages');
  final totalEntries = jResp.intOf('total_entries');
  final nextPage = jResp.stringOf('next_page');
  final previousPage = jResp.stringOf('previous_page');
  final page = jResp.intOf('page');
  final linksFirst = jResp.stringOf('links.first');
  final linksNext = jResp.stringOf('links.next');
  final linksPrevious = jResp.stringOf('links.previous');
  final linksLast = jResp.stringOf('links.last');
  i = 0;
  final 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++;
  }
}