Sample code for 30+ languages & platforms
Go

SugarCRM Filtering Records

See more SugarCRM Examples

Export records and filter.

Chilkat Go Downloads

Go
    success := false

    rest := chilkat.NewRest()

    success = rest.Connect("your.site.domain",443,true,true)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        return
    }

    rest.AddHeader("Cache-Control","no-cache")
    rest.AddHeader("OAuth-Token","<access_token>")

    // The following code creates the JSON request body.
    // The JSON created by this code is shown below.
    jsonReq := chilkat.NewJsonObject()
    jsonReq.UpdateString("filter[0].$or[0].name.$starts","A")
    jsonReq.UpdateString("filter[0].$or[1].name.$starts","b")
    jsonReq.UpdateNumber("max_num","2")
    jsonReq.UpdateNumber("offset","0")
    jsonReq.UpdateString("fields","id")
    jsonReq.UpdateString("order_by","date_entered")
    jsonReq.UpdateBool("favorites",false)
    jsonReq.UpdateBool("my_items",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
    // }

    sbReq := chilkat.NewStringBuilder()
    jsonReq.EmitSb(sbReq)

    rest.AddHeader("Content-Type","application/json")

    sbJson := chilkat.NewStringBuilder()
    success = rest.FullRequestSb("POST","/rest/v10/Accounts/filter",sbReq,sbJson)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        jsonReq.DisposeJsonObject()
        sbReq.DisposeStringBuilder()
        sbJson.DisposeStringBuilder()
        return
    }

    if rest.ResponseStatusCode() != 200 {
        fmt.Println("Received error response code: ", rest.ResponseStatusCode())
        fmt.Println("Response body:")
        fmt.Println(*sbJson.GetAsString())
        rest.DisposeRest()
        jsonReq.DisposeJsonObject()
        sbReq.DisposeStringBuilder()
        sbJson.DisposeStringBuilder()
        return
    }

    json := chilkat.NewJsonObject()
    json.LoadSb(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 = new(string)
    var date_modified *string = new(string)
    var v_module *string = new(string)

    next_offset = json.IntOf("next_offset")
    i = 0
    count_i = json.SizeOfArray("records")
    for i < count_i {
        json.SetI(i)
        id = json.StringOf("records[i].id")
        date_modified = json.StringOf("records[i].date_modified")
        v_module = json.StringOf("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"
    //     }
    //   ]
    // }

    fmt.Println("Example Completed.")

    rest.DisposeRest()
    jsonReq.DisposeJsonObject()
    sbReq.DisposeStringBuilder()
    sbJson.DisposeStringBuilder()
    json.DisposeJsonObject()