Swift
Swift
SugarCRM Filtering Records
See more SugarCRM Examples
Export records and filter.Chilkat Swift Downloads
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.")
}