@@ -12,7 +12,7 @@ type CustomObjectRecord struct {
12
12
Name string `json:"name"`
13
13
ID string `json:"id"`
14
14
CustomObjectKey string `json:"custom_object_key"`
15
- CustomObjectFields map [string ]interface {} `json:"custom_object_fields"`
15
+ CustomObjectFields map [string ]interface {} `json:"custom_object_fields" binding:"required" `
16
16
CreatedByUserID string `json:"created_by_user_id"`
17
17
UpdatedByUserID string `json:"updated_by_user_id"`
18
18
CreatedAt time.Time `json:"created_at"`
@@ -31,6 +31,12 @@ type CustomObjectAPI interface {
31
31
) ([]CustomObjectRecord , Page , error )
32
32
ListCustomObjectRecords (
33
33
ctx context.Context , customObjectKey string , opts * CustomObjectListOptions ) ([]CustomObjectRecord , Page , error )
34
+ ShowCustomObjectRecord (
35
+ ctx context.Context , customObjectKey string , customObjectRecordID string ,
36
+ ) (* CustomObjectRecord , error )
37
+ UpdateCustomObjectRecord (
38
+ ctx context.Context , customObjectKey string , customObjectRecordID string , record CustomObjectRecord ,
39
+ ) (* CustomObjectRecord , error )
34
40
}
35
41
36
42
// CustomObjectAutocompleteOptions custom object search options
@@ -117,3 +123,50 @@ func (z *Client) SearchCustomObjectRecords(
117
123
}
118
124
return result .CustomObjectRecords , result .Page , nil
119
125
}
126
+
127
+ // ShowCustomObjectRecord returns a custom record for a specific object using a provided id.
128
+ // https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#show-custom-object-record
129
+ func (z * Client ) ShowCustomObjectRecord (
130
+ ctx context.Context , customObjectKey string , customObjectRecordID string ,
131
+ ) (* CustomObjectRecord , error ) {
132
+ var result struct {
133
+ CustomObjectRecord CustomObjectRecord `json:"custom_object_record"`
134
+ }
135
+
136
+ url := fmt .Sprintf ("/custom_objects/%s/records/%s" , customObjectKey , customObjectRecordID )
137
+ body , err := z .get (ctx , url )
138
+
139
+ if err != nil {
140
+ return nil , err
141
+ }
142
+ err = json .Unmarshal (body , & result )
143
+
144
+ if err != nil {
145
+ return nil , err
146
+ }
147
+ return & result .CustomObjectRecord , nil
148
+ }
149
+
150
+ // UpdateCustomObjectRecord Updates an individual custom object record
151
+ // https://developer.zendesk.com/api-reference/custom-objects/custom_object_records/#update-custom-object-record
152
+ func (z * Client ) UpdateCustomObjectRecord (
153
+ ctx context.Context , customObjectKey string , customObjectRecordID string , record CustomObjectRecord ,
154
+ ) (* CustomObjectRecord , error ) {
155
+ var data , result struct {
156
+ CustomObjectRecord CustomObjectRecord `json:"custom_object_record"`
157
+ }
158
+ data .CustomObjectRecord = record
159
+
160
+ url := fmt .Sprintf ("/custom_objects/%s/records/%s" , customObjectKey , customObjectRecordID )
161
+ body , err := z .patch (ctx , url , data )
162
+
163
+ if err != nil {
164
+ return nil , err
165
+ }
166
+ err = json .Unmarshal (body , & result )
167
+
168
+ if err != nil {
169
+ return nil , err
170
+ }
171
+ return & result .CustomObjectRecord , nil
172
+ }
0 commit comments