@@ -24,11 +24,14 @@ type CustomObjectRecord struct {
24
24
type CustomObjectAPI interface {
25
25
CreateCustomObjectRecord (
26
26
ctx context.Context , record CustomObjectRecord , customObjectKey string ) (CustomObjectRecord , error )
27
- SearchCustomObjectRecords (
27
+ AutocompleteSearchCustomObjectRecords (
28
28
ctx context.Context ,
29
29
customObjectKey string ,
30
30
opts * CustomObjectAutocompleteOptions ,
31
31
) ([]CustomObjectRecord , Page , error )
32
+ SearchCustomObjectRecords (
33
+ ctx context.Context , customObjectKey string , opts * SearchCustomObjectRecordsOptions ,
34
+ ) ([]CustomObjectRecord , Page , error )
32
35
ListCustomObjectRecords (
33
36
ctx context.Context , customObjectKey string , opts * CustomObjectListOptions ) ([]CustomObjectRecord , Page , error )
34
37
ShowCustomObjectRecord (
@@ -98,19 +101,58 @@ func (z *Client) ListCustomObjectRecords(
98
101
return result .CustomObjectRecords , result .Page , nil
99
102
}
100
103
104
+ // AutocompleteSearchCustomObjectRecords search for a custom object record by the name field
105
+ // https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#autocomplete-custom-object-record-search
106
+ func (z * Client ) AutocompleteSearchCustomObjectRecords (
107
+ ctx context.Context , customObjectKey string , opts * CustomObjectAutocompleteOptions ,
108
+ ) ([]CustomObjectRecord , Page , error ) {
109
+ var result struct {
110
+ CustomObjectRecords []CustomObjectRecord `json:"custom_object_records"`
111
+ Page
112
+ }
113
+ tmp := opts
114
+ if tmp == nil {
115
+ tmp = & CustomObjectAutocompleteOptions {}
116
+ }
117
+ url := fmt .Sprintf ("/custom_objects/%s/records/autocomplete" , customObjectKey )
118
+ urlWithOptions , err := addOptions (url , tmp )
119
+ body , err := z .get (ctx , urlWithOptions )
120
+
121
+ if err != nil {
122
+ return nil , Page {}, err
123
+ }
124
+ err = json .Unmarshal (body , & result )
125
+ if err != nil {
126
+ return nil , Page {}, err
127
+ }
128
+ return result .CustomObjectRecords , result .Page , nil
129
+ }
130
+
131
+ type SearchCustomObjectRecordsOptions struct {
132
+ PageOptions
133
+
134
+ // One of name, created_at, updated_at, -name, -created_at, or -updated_at.
135
+ // The - denotes the sort will be descending. Defaults to sorting by relevance.
136
+ Sort string `url:"sort,omitempty"`
137
+
138
+ // Query string
139
+ Query string `url:"query,omitempty"`
140
+ }
141
+
101
142
// SearchCustomObjectRecords search for a custom object record by the name field
102
143
// https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#search-custom-object-records
103
144
func (z * Client ) SearchCustomObjectRecords (
104
- ctx context.Context , customObjectKey string , opts * CustomObjectAutocompleteOptions ) ([]CustomObjectRecord , Page , error ) {
145
+ ctx context.Context , customObjectKey string , opts * SearchCustomObjectRecordsOptions ,
146
+ ) ([]CustomObjectRecord , Page , error ) {
105
147
var result struct {
106
148
CustomObjectRecords []CustomObjectRecord `json:"custom_object_records"`
107
149
Page
108
150
}
109
151
tmp := opts
110
152
if tmp == nil {
111
- tmp = & CustomObjectAutocompleteOptions {}
153
+ tmp = & SearchCustomObjectRecordsOptions {}
112
154
}
113
- url := fmt .Sprintf ("/custom_objects/%s/records/autocomplete " , customObjectKey )
155
+ url := fmt .Sprintf ("/custom_objects/%s/records/search " , customObjectKey )
114
156
urlWithOptions , err := addOptions (url , tmp )
115
157
body , err := z .get (ctx , urlWithOptions )
116
158
0 commit comments