Sample code for 30+ languages & platforms
Swift

GetHarvest - Create Contact

See more GetHarvest Examples

Creates a new contact object. Returns a contact object and a 201 Created response code if the call succeeded.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

    // Implements the following CURL command:

    // curl "https://api.harvestapp.com/v2/contacts" \
    //   -H "Authorization: Bearer ACCESS_TOKEN" \
    //   -H "Harvest-Account-Id: ACCOUNT_ID" \
    //   -H "User-Agent: MyApp (yourname@example.com)" \
    //   -X POST \
    //   -H "Content-Type: application/json" \
    //   -d '{"client_id":8282839,"first_name":"George","last_name":"Frank","email":"georgefrank@example.com"}'

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

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

    // {
    //   "client_id": 8282839,
    //   "first_name": "George",
    //   "last_name": "Frank",
    //   "email": "georgefrank@example.com"
    // }

    let json = CkoJsonObject()!
    json.updateInt(jsonPath: "client_id", value: 8282839)
    json.updateString(jsonPath: "first_name", value: "George")
    json.updateString(jsonPath: "last_name", value: "Frank")
    json.updateString(jsonPath: "email", value: "georgefrank@example.com")

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

    let resp = CkoHttpResponse()!
    success = http.httpJson(verb: "POST", url: "https://api.harvestapp.com/v2/contacts", json: json, contentType: "application/json", response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let sbResponseBody = CkoStringBuilder()!
    resp.getBodySb(sb: sbResponseBody)
    let jResp = CkoJsonObject()!
    jResp.loadSb(sb: sbResponseBody)
    jResp.emitCompact = false

    print("Response Body:")
    print("\(jResp.emit()!)")

    var respStatusCode: Int = resp.statusCode.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(resp.header!)")
        print("Failed.")
        return
    }

    // Sample JSON response:

    // {
    //   "id": 4706510,
    //   "title": null,
    //   "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:44:57Z",
    //   "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

    var id: Int
    var title: String?
    var first_name: String?
    var last_name: String?
    var email: String?
    var phone_office: String?
    var phone_mobile: String?
    var fax: String?
    var created_at: String?
    var updated_at: String?
    var clientId: Int
    var clientName: String?

    id = jResp.int(of: "id").intValue
    title = jResp.string(of: "title")
    first_name = jResp.string(of: "first_name")
    last_name = jResp.string(of: "last_name")
    email = jResp.string(of: "email")
    phone_office = jResp.string(of: "phone_office")
    phone_mobile = jResp.string(of: "phone_mobile")
    fax = jResp.string(of: "fax")
    created_at = jResp.string(of: "created_at")
    updated_at = jResp.string(of: "updated_at")
    clientId = jResp.int(of: "client.id").intValue
    clientName = jResp.string(of: "client.name")

}