Sample code for 30+ languages & platforms
C++

GetHarvest - Update Contact

See more GetHarvest Examples

Updates the specific contact by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Returns a contact object and a 200 OK response code if the call succeeded.

Chilkat C++ Downloads

C++
#include <CkHttp.h>
#include <CkJsonObject.h>
#include <CkStringBuilder.h>
#include <CkHttpResponse.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkHttp http;

    //  Implements the following CURL command:

    //  curl "https://api.harvestapp.com/v2/contacts/CONTACT_ID" \
    //    -H "Authorization: Bearer ACCESS_TOKEN" \
    //    -H "Harvest-Account-Id: ACCOUNT_ID" \
    //    -H "User-Agent: MyApp (yourname@example.com)" \
    //    -X PATCH \
    //    -H "Content-Type: application/json" \
    //    -d '{"title":"Owner"}'

    //  Use this online tool to generate code from sample JSON:
    //  Generate Code to Create JSON

    //  The following JSON is sent in the request body.

    //  {
    //    "title": "Owner"
    //  }

    CkJsonObject json;
    json.UpdateString("title","Owner");

    http.SetRequestHeader("User-Agent","MyApp (yourname@example.com)");
    http.SetRequestHeader("Content-Type","application/json");
    http.SetRequestHeader("Authorization","Bearer ACCESS_TOKEN");
    http.SetRequestHeader("Harvest-Account-Id","ACCOUNT_ID");

    CkStringBuilder sbRequestBody;
    json.EmitSb(sbRequestBody);

    CkHttpResponse resp;
    success = http.HttpSb("PATCH","https://api.harvestapp.com/v2/contacts/CONTACT_ID",sbRequestBody,"utf-8","application/json",resp);
    if (success == false) {
        std::cout << http.lastErrorText() << "\r\n";
        return;
    }

    CkStringBuilder sbResponseBody;
    resp.GetBodySb(sbResponseBody);
    CkJsonObject jResp;
    jResp.LoadSb(sbResponseBody);
    jResp.put_EmitCompact(false);

    std::cout << "Response Body:" << "\r\n";
    std::cout << jResp.emit() << "\r\n";

    int respStatusCode = resp.get_StatusCode();
    std::cout << "Response Status Code = " << respStatusCode << "\r\n";
    if (respStatusCode >= 400) {
        std::cout << "Response Header:" << "\r\n";
        std::cout << resp.header() << "\r\n";
        std::cout << "Failed." << "\r\n";
        return;
    }

    //  Sample JSON response:

    //  {
    //    "id": 4706510,
    //    "title": "Owner",
    //    "first_name": "George",
    //    "last_name": "Frank",
    //    "email": "georgefrank@example.com",
    //    "phone_office": "",
    //    "phone_mobile": "",
    //    "fax": "",
    //    "created_at": "2017-06-26T21:44:57Z",
    //    "updated_at": "2017-06-26T21:46:48Z",
    //    "client": {
    //      "id": 5735776,
    //      "name": "123 Industries"
    //    }
    //  }

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

    int id;
    const char *title = 0;
    const char *first_name = 0;
    const char *last_name = 0;
    const char *email = 0;
    const char *phone_office = 0;
    const char *phone_mobile = 0;
    const char *fax = 0;
    const char *created_at = 0;
    const char *updated_at = 0;
    int clientId;
    const char *clientName = 0;

    id = jResp.IntOf("id");
    title = jResp.stringOf("title");
    first_name = jResp.stringOf("first_name");
    last_name = jResp.stringOf("last_name");
    email = jResp.stringOf("email");
    phone_office = jResp.stringOf("phone_office");
    phone_mobile = jResp.stringOf("phone_mobile");
    fax = jResp.stringOf("fax");
    created_at = jResp.stringOf("created_at");
    updated_at = jResp.stringOf("updated_at");
    clientId = jResp.IntOf("client.id");
    clientName = jResp.stringOf("client.name");
    }