Sample code for 30+ languages & platforms
Swift

SugarCRM Filtering Records

See more SugarCRM Examples

Export records and filter.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let rest = CkoRest()!

    success = rest.connect(hostname: "your.site.domain", port: 443, tls: true, autoReconnect: true)
    if success != true {
        print("\(rest.lastErrorText!)")
        return
    }

    rest.addHeader(name: "Cache-Control", value: "no-cache")
    rest.addHeader(name: "OAuth-Token", value: "<access_token>")

    // The following code creates the JSON request body.
    // The JSON created by this code is shown below.
    let jsonReq = CkoJsonObject()!
    jsonReq.updateString(jsonPath: "filter[0].$or[0].name.$starts", value: "A")
    jsonReq.updateString(jsonPath: "filter[0].$or[1].name.$starts", value: "b")
    jsonReq.updateNumber(jsonPath: "max_num", numericStr: "2")
    jsonReq.updateNumber(jsonPath: "offset", numericStr: "0")
    jsonReq.updateString(jsonPath: "fields", value: "id")
    jsonReq.updateString(jsonPath: "order_by", value: "date_entered")
    jsonReq.updateBool(jsonPath: "favorites", value: false)
    jsonReq.updateBool(jsonPath: "my_items", value: false)

    // The JSON request body created by the above code:

    // {
    //   "filter": [
    //     {
    //       "$or": [
    //         {
    //           "name": {
    //             "$starts": "A"
    //           }
    //         },
    //         {
    //           "name": {
    //             "$starts": "b"
    //           }
    //         }
    //       ]
    //     }
    //   ],
    //   "max_num": 2,
    //   "offset": 0,
    //   "fields": "id",
    //   "order_by": "date_entered",
    //   "favorites": false,
    //   "my_items": false
    // }

    let sbReq = CkoStringBuilder()!
    jsonReq.emitSb(sb: sbReq)

    rest.addHeader(name: "Content-Type", value: "application/json")

    let sbJson = CkoStringBuilder()!
    success = rest.fullRequestSb(httpVerb: "POST", uriPath: "/rest/v10/Accounts/filter", requestBody: sbReq, responseBody: sbJson)
    if success != true {
        print("\(rest.lastErrorText!)")
        return
    }

    if rest.responseStatusCode.intValue != 200 {
        print("Received error response code: \(rest.responseStatusCode.intValue)")
        print("Response body:")
        print("\(sbJson.getAsString()!)")
        return
    }

    let json = CkoJsonObject()!
    json.loadSb(sb: sbJson)

    // The following code parses the JSON response.
    // A sample JSON response is shown below the sample code.
    var next_offset: Int
    var i: Int
    var count_i: Int
    var id: String?
    var date_modified: String?
    var v_module: String?

    next_offset = json.int(of: "next_offset").intValue
    i = 0
    count_i = json.size(ofArray: "records").intValue
    while i < count_i {
        json.i = i
        id = json.string(of: "records[i].id")
        date_modified = json.string(of: "records[i].date_modified")
        v_module = json.string(of: "records[i]._module")
        i = i + 1
    }

    // A sample JSON response body that is parsed by the above code:

    // {
    //   "next_offset": 2,
    //   "records": [
    //     {
    //       "id": "f16760a4-3a52-f77d-1522-5703ca28925f",
    //       "date_modified": "2016-04-05T10:23:28-04:00",
    //       "_acl": {
    //         "fields": {}
    //       },
    //       "_module": "Accounts"
    //     },
    //     {
    //       "id": "ec409fbb-2b22-4f32-7fa1-5703caf78dc3",
    //       "date_modified": "2016-04-05T10:23:28-04:00",
    //       "_acl": {
    //         "fields": {}
    //       },
    //       "_module": "Accounts"
    //     }
    //   ]
    // }

    print("Example Completed.")

}