zendesk_api 0.1.11 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.travis.yml +1 -3
- data/Gemfile +24 -0
- data/Gemfile.lock +75 -10
- data/Procfile +1 -0
- data/Rakefile +10 -3
- data/Readme.md +65 -0
- data/bin/zendesk +26 -0
- data/config.ru +6 -0
- data/config/mongoid.yml +81 -0
- data/lib/zendesk_api/actions.rb +2 -2
- data/lib/zendesk_api/collection.rb +15 -4
- data/lib/zendesk_api/console/base.rb +12 -0
- data/lib/zendesk_api/console/console.rb +144 -0
- data/lib/zendesk_api/console/extensions.rb +183 -0
- data/lib/zendesk_api/console/options.rb +41 -0
- data/lib/zendesk_api/resource.rb +12 -1
- data/lib/zendesk_api/resources.rb +28 -8
- data/lib/zendesk_api/server/base.rb +119 -0
- data/lib/zendesk_api/server/docs/account_settings.md +145 -0
- data/lib/zendesk_api/server/docs/activity_stream.md +121 -0
- data/lib/zendesk_api/server/docs/attachments.md +73 -0
- data/lib/zendesk_api/server/docs/autocomplete.md +29 -0
- data/lib/zendesk_api/server/docs/categories.md +193 -0
- data/lib/zendesk_api/server/docs/custom_roles.md +88 -0
- data/lib/zendesk_api/server/docs/forum_subscriptions.md +139 -0
- data/lib/zendesk_api/server/docs/forums.md +229 -0
- data/lib/zendesk_api/server/docs/group_memberships.md +229 -0
- data/lib/zendesk_api/server/docs/groups.md +212 -0
- data/lib/zendesk_api/server/docs/introduction.md +159 -0
- data/lib/zendesk_api/server/docs/job_statuses.md +86 -0
- data/lib/zendesk_api/server/docs/locales.md +124 -0
- data/lib/zendesk_api/server/docs/macros.md +287 -0
- data/lib/zendesk_api/server/docs/organizations.md +253 -0
- data/lib/zendesk_api/server/docs/problems.md +117 -0
- data/lib/zendesk_api/server/docs/requests.md +256 -0
- data/lib/zendesk_api/server/docs/satisfaction_ratings.md +136 -0
- data/lib/zendesk_api/server/docs/search.md +106 -0
- data/lib/zendesk_api/server/docs/sharing_agreements.md +57 -0
- data/lib/zendesk_api/server/docs/side_loading.md +125 -0
- data/lib/zendesk_api/server/docs/suspended_tickets.md +182 -0
- data/lib/zendesk_api/server/docs/tags.md +36 -0
- data/lib/zendesk_api/server/docs/ticket_audits.md +657 -0
- data/lib/zendesk_api/server/docs/ticket_export.md +121 -0
- data/lib/zendesk_api/server/docs/ticket_fields.md +277 -0
- data/lib/zendesk_api/server/docs/ticket_import.md +65 -0
- data/lib/zendesk_api/server/docs/ticket_metrics.md +125 -0
- data/lib/zendesk_api/server/docs/tickets.md +622 -0
- data/lib/zendesk_api/server/docs/topic_comments.md +221 -0
- data/lib/zendesk_api/server/docs/topic_subscriptions.md +140 -0
- data/lib/zendesk_api/server/docs/topic_votes.md +154 -0
- data/lib/zendesk_api/server/docs/topics.md +335 -0
- data/lib/zendesk_api/server/docs/triggers.md +199 -0
- data/lib/zendesk_api/server/docs/user_identities.md +279 -0
- data/lib/zendesk_api/server/docs/users.md +400 -0
- data/lib/zendesk_api/server/docs/views.md +505 -0
- data/lib/zendesk_api/server/helper.rb +104 -0
- data/lib/zendesk_api/server/html_renderer.rb +98 -0
- data/lib/zendesk_api/server/models/user_request.rb +16 -0
- data/lib/zendesk_api/server/models/zlib_json.rb +13 -0
- data/lib/zendesk_api/server/public/config.rb +26 -0
- data/lib/zendesk_api/server/public/favicon.ico +0 -0
- data/lib/zendesk_api/server/public/images/glyphicons-halflings-white.png +0 -0
- data/lib/zendesk_api/server/public/images/glyphicons-halflings.png +0 -0
- data/lib/zendesk_api/server/public/images/spinner.gif +0 -0
- data/lib/zendesk_api/server/public/images/zendesk_developers_bg.png +0 -0
- data/lib/zendesk_api/server/public/images/zendesk_developers_header.png +0 -0
- data/lib/zendesk_api/server/public/javascripts/application.js +186 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-alert.js +90 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-button.js +96 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-carousel.js +169 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-collapse.js +157 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-dropdown.js +100 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-modal.js +218 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-popover.js +98 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-scrollspy.js +151 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-tab.js +135 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-tooltip.js +275 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-transition.js +61 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-typeahead.js +285 -0
- data/lib/zendesk_api/server/public/sass/screen.scss +102 -0
- data/lib/zendesk_api/server/public/sass/styles.scss +5 -0
- data/lib/zendesk_api/server/public/stylesheets/developer.screen.css +836 -0
- data/lib/zendesk_api/server/public/stylesheets/screen.css +129 -0
- data/lib/zendesk_api/server/public/stylesheets/styles.css +6208 -0
- data/lib/zendesk_api/server/templates/footer.haml +13 -0
- data/lib/zendesk_api/server/templates/header.haml +20 -0
- data/lib/zendesk_api/server/templates/index.haml +68 -0
- data/lib/zendesk_api/server/templates/layout.haml +44 -0
- data/lib/zendesk_api/server/templates/param.haml +4 -0
- data/lib/zendesk_api/server/templates/search.haml +23 -0
- data/lib/zendesk_api/server/templates/sidebar.haml +7 -0
- data/lib/zendesk_api/version.rb +1 -1
- data/spec/{association_spec.rb → core/association_spec.rb} +1 -1
- data/spec/{client_spec.rb → core/client_spec.rb} +1 -1
- data/spec/{collection_spec.rb → core/collection_spec.rb} +1 -1
- data/spec/{configuration_spec.rb → core/configuration_spec.rb} +1 -1
- data/spec/{create_resource_spec.rb → core/create_resource_spec.rb} +1 -1
- data/spec/{data_resource_spec.rb → core/data_resource_spec.rb} +1 -1
- data/spec/{inflection_spec.rb → core/inflection_spec.rb} +1 -1
- data/spec/{lru_cache_spec.rb → core/lru_cache_spec.rb} +1 -1
- data/spec/{middleware → core/middleware}/request/etag_cache_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/request/retry_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/request/test.jpg +0 -0
- data/spec/{middleware → core/middleware}/request/upload_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/callback_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/deflate_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/gzip_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/parse_iso_dates_spec.rb +1 -1
- data/spec/{read_resource_spec.rb → core/read_resource_spec.rb} +1 -1
- data/spec/{rescue_spec.rb → core/rescue_spec.rb} +1 -1
- data/spec/{resource_spec.rb → core/resource_spec.rb} +1 -1
- data/spec/{search_spec.rb → core/search_spec.rb} +1 -1
- data/spec/{spec_helper.rb → core/spec_helper.rb} +5 -5
- data/spec/{trackie_spec.rb → core/trackie_spec.rb} +1 -1
- data/{live → spec/live}/Readme.md +0 -0
- data/{live → spec/live}/activity_spec.rb +1 -1
- data/{live → spec/live}/audit_spec.rb +1 -1
- data/{live → spec/live}/bookmark_spec.rb +1 -1
- data/{live → spec/live}/category_spec.rb +1 -1
- data/{live → spec/live}/collection_spec.rb +1 -1
- data/{live → spec/live}/crm_spec.rb +1 -1
- data/{live → spec/live}/custom_role_spec.rb +1 -1
- data/{live → spec/live}/forum_spec.rb +1 -1
- data/{live → spec/live}/forum_subscription_spec.rb +1 -1
- data/{live → spec/live}/group_membership_spec.rb +1 -1
- data/{live → spec/live}/group_spec.rb +1 -1
- data/{live → spec/live}/identity_spec.rb +1 -1
- data/{live → spec/live}/locale_spec.rb +1 -1
- data/{live → spec/live}/macro_spec.rb +1 -1
- data/{live → spec/live}/mobile_device_spec.rb +1 -1
- data/{live → spec/live}/organization_spec.rb +1 -1
- data/{live → spec/live}/request_spec.rb +1 -1
- data/{live → spec/live}/satisfaction_rating_spec.rb +1 -1
- data/{live → spec/live}/setting_spec.rb +1 -1
- data/{live → spec/live}/suspended_ticket_spec.rb +1 -1
- data/{live → spec/live}/ticket_field_spec.rb +1 -1
- data/{live → spec/live}/ticket_metrics_spec.rb +1 -1
- data/{live → spec/live}/ticket_spec.rb +1 -1
- data/spec/live/topic_comment_spec.rb +24 -0
- data/{live → spec/live}/topic_spec.rb +1 -1
- data/{live → spec/live}/topic_subscription_spec.rb +1 -1
- data/{live → spec/live}/topic_vote_spec.rb +1 -1
- data/{live → spec/live}/upload_spec.rb +1 -1
- data/{live → spec/live}/user_spec.rb +1 -1
- data/{live → spec/live}/view_spec.rb +1 -1
- data/spec/macros/resource_macros.rb +1 -1
- data/spec/server/app_spec.rb +140 -0
- data/spec/server/helper_spec.rb +97 -0
- data/spec/server/html_renderer_spec.rb +130 -0
- data/spec/server/spec_helper.rb +43 -0
- metadata +198 -77
- data/live/topic_comment_spec.rb +0 -13
@@ -0,0 +1,505 @@
|
|
1
|
+
## Views
|
2
|
+
|
3
|
+
### JSON Format
|
4
|
+
Views are read-only and represented as simple flat JSON objects which have the following keys.
|
5
|
+
|
6
|
+
| Name | Type | Comment
|
7
|
+
| --------------- | ---------------------------| -------------------
|
8
|
+
| id | integer | Automatically assigned when created
|
9
|
+
| title | string | The title of the view
|
10
|
+
| active | boolean | Useful for determining if the view should be displayed
|
11
|
+
| restriction | object | Who may access this account. Will be null when everyone in the account can access it.
|
12
|
+
| execution | [Execute](#execution) | An object describing how the view should be executed
|
13
|
+
| conditions | [Conditions](#conditions) | An object describing how the view is constructed
|
14
|
+
| created_at | date | The time the view was created
|
15
|
+
| updated_at | date | The time of the last update of the view
|
16
|
+
|
17
|
+
#### Example
|
18
|
+
```js
|
19
|
+
{
|
20
|
+
"view": {
|
21
|
+
"id": 25,
|
22
|
+
"title": "Tickets updated <12 Hours",
|
23
|
+
"active": true,
|
24
|
+
"execution": { ... },
|
25
|
+
"conditions": [ ... ],
|
26
|
+
"restriction": {
|
27
|
+
"type": "User",
|
28
|
+
"id": 4
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
### Execution
|
35
|
+
View Execution is a read-only object that describes how to display a collection of tickets in a View.
|
36
|
+
|
37
|
+
| Name | Type | Comment
|
38
|
+
| --------------- | ------- | -------
|
39
|
+
| fields | Array | The ticket fields to display. System fields have a string id.
|
40
|
+
| custom_fields | Array | The custom ticket fields to display. Custom fields have an id and url referencing the [Ticket Field](ticket_fields.md)
|
41
|
+
| group_by | String | When present, the field by which the tickets are grouped
|
42
|
+
| group_order | String | The direction the tickets are grouped. May be one of 'asc' or 'desc'
|
43
|
+
| sort_order | String | The direction the tickets are sorted. May be one of 'asc' or 'desc'
|
44
|
+
| sort_by | String | The ticket field used for sorting. This will either be a title or a custom field id.
|
45
|
+
|
46
|
+
#### Example
|
47
|
+
```js
|
48
|
+
{
|
49
|
+
"execution":{
|
50
|
+
"fields": [
|
51
|
+
{ "id": "status", "title": "Status" },
|
52
|
+
{ "id": "updated", "title": "Updated" }
|
53
|
+
],
|
54
|
+
"custom_fields": [
|
55
|
+
{
|
56
|
+
"id": 5, "title": "Account",
|
57
|
+
"url": "https://example.zendesk.com/api/v2/ticket_fields/5.json"
|
58
|
+
},
|
59
|
+
...
|
60
|
+
]
|
61
|
+
"group_by":null,
|
62
|
+
"sort_order":"desc",
|
63
|
+
"sort_by":"updated"
|
64
|
+
}
|
65
|
+
}
|
66
|
+
```
|
67
|
+
|
68
|
+
### Conditions
|
69
|
+
The conditions under which a ticket is selected.
|
70
|
+
|
71
|
+
| Name | Type | Comment
|
72
|
+
| ------------ | ------- | -------
|
73
|
+
| all | array | Tickets must fulfill *all* of these conditions to be considered matching
|
74
|
+
| any | array | Tickets may satisfy *any* of these conditions to be considered matching
|
75
|
+
|
76
|
+
#### Example
|
77
|
+
```js
|
78
|
+
{
|
79
|
+
"conditions": {
|
80
|
+
"all": [
|
81
|
+
{ "field": "status", "operator": "less_than", "value": "solved" },
|
82
|
+
{ "field": "assignee", "operator": "is", "value": "me" },
|
83
|
+
],
|
84
|
+
"any": [
|
85
|
+
]
|
86
|
+
}
|
87
|
+
}
|
88
|
+
```
|
89
|
+
|
90
|
+
<!---
|
91
|
+
|
92
|
+
### View Rows
|
93
|
+
|
94
|
+
View Rows are read-only and represented as simple flat JSON objects which have the following keys.
|
95
|
+
|
96
|
+
| Name | Type | Comment
|
97
|
+
| --------------- | --------------------------- | -------------------
|
98
|
+
| view | Array | View that was executed. Consists of id and url.
|
99
|
+
| rows | Array | Array of tickets contained in the view, described by the fields.
|
100
|
+
| columns | Array | Array of [Fields](#execution) and [Custom Fields](#execution) representing the columns in each row.
|
101
|
+
|
102
|
+
A row contains the data indicated by the idenitifiers in the columns array.
|
103
|
+
|
104
|
+
| Name | Type | Optional | Comment
|
105
|
+
| ---------------------- | ---------------------------- | --------- | ----------------
|
106
|
+
| ticket | Object | no | Ticket id, url, subject, description, status, type, priority and comment this row is a subset of.
|
107
|
+
| custom_fields | Array | no | Custom fields values.
|
108
|
+
| group | Integer | yes | Id of this ticket's group.
|
109
|
+
| organization | Integer | yes | Id of this ticket's organization.
|
110
|
+
| requester | Integer | yes | Id of this ticket's requester.
|
111
|
+
| assignee | Integer | yes | Id of this ticket's assignee.
|
112
|
+
| submitter | Integer | yes | Id of this ticket's submitter.
|
113
|
+
| locale | String | yes | Locale of the requester.
|
114
|
+
| type | String | yes | See [Ticket](tickets.md#json-format)
|
115
|
+
| priority | String | yes | See [Ticket](tickets.md#json-format)
|
116
|
+
| status | String | yes | See [Ticket](tickets.md#json-format)
|
117
|
+
| updated_by_type | String | yes | Last updated by 'agent' or 'end user'
|
118
|
+
| subject | DateTime | yes | Ticket subject.
|
119
|
+
| requester_updated_at | DateTime | yes | When the requester last updated the ticket.
|
120
|
+
| assignee_updated_at | DateTime | yes | When the assignee last updated the ticket.
|
121
|
+
| assigned | DateTime | yes | When the ticket was assigned last.
|
122
|
+
| due_date | DateTime | yes | When the ticket is due.
|
123
|
+
| solved | DateTime | yes | When the ticket was solved.
|
124
|
+
| created | DateTime | yes | When the ticket was created.
|
125
|
+
| updated | DateTime | yes | When the ticket was updated.
|
126
|
+
|
127
|
+
#### Example
|
128
|
+
```js
|
129
|
+
{
|
130
|
+
"view": {
|
131
|
+
"id": 5,
|
132
|
+
"url": "https://example.zendesk.com/api/v2/views/5.json"
|
133
|
+
},
|
134
|
+
"rows": [
|
135
|
+
{
|
136
|
+
"ticket": { ... },
|
137
|
+
"locale": "en-US",
|
138
|
+
"group": { ... },
|
139
|
+
...
|
140
|
+
},
|
141
|
+
...
|
142
|
+
],
|
143
|
+
"columns": [
|
144
|
+
{
|
145
|
+
"id": "locale",
|
146
|
+
"title": "Locale"
|
147
|
+
},
|
148
|
+
{
|
149
|
+
"id": 5,
|
150
|
+
"title": "Account",
|
151
|
+
"url": ...
|
152
|
+
},
|
153
|
+
...
|
154
|
+
]
|
155
|
+
}
|
156
|
+
```
|
157
|
+
|
158
|
+
-->
|
159
|
+
|
160
|
+
### List Views
|
161
|
+
`GET /api/v2/views.json`
|
162
|
+
|
163
|
+
Lists shared and personal Views available to the current user
|
164
|
+
|
165
|
+
#### Allowed For:
|
166
|
+
|
167
|
+
* Agents
|
168
|
+
|
169
|
+
#### Using curl
|
170
|
+
|
171
|
+
```bash
|
172
|
+
curl https://{subdomain}.zendesk.com/api/v2/views.json \
|
173
|
+
-v -u {email_address}:{password}
|
174
|
+
```
|
175
|
+
|
176
|
+
#### Example Response
|
177
|
+
|
178
|
+
```http
|
179
|
+
Status: 200 OK
|
180
|
+
|
181
|
+
{
|
182
|
+
"views": [
|
183
|
+
{
|
184
|
+
"id":25,
|
185
|
+
"title":"Tickets updated <12 Hours",
|
186
|
+
"active":true,
|
187
|
+
"execution":{ ... },
|
188
|
+
"conditions": { ... },
|
189
|
+
"restriction":{ ... }
|
190
|
+
},
|
191
|
+
{
|
192
|
+
"id":23,
|
193
|
+
"title":"Unassigned tickets",
|
194
|
+
"active":false,
|
195
|
+
"execution":{ ... },
|
196
|
+
"conditions": { ... },
|
197
|
+
"restriction":{ ... }
|
198
|
+
},
|
199
|
+
...
|
200
|
+
],
|
201
|
+
"count": 7,
|
202
|
+
"next_page": null,
|
203
|
+
"previous_page": null
|
204
|
+
}
|
205
|
+
```
|
206
|
+
|
207
|
+
### List Active Views
|
208
|
+
`GET /api/v2/views/active.json`
|
209
|
+
|
210
|
+
Lists active shared and personal Views available to the current user
|
211
|
+
|
212
|
+
#### Allowed For:
|
213
|
+
|
214
|
+
* Agents
|
215
|
+
|
216
|
+
#### Using curl
|
217
|
+
|
218
|
+
```bash
|
219
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/active.json \
|
220
|
+
-v -u {email_address}:{password}
|
221
|
+
```
|
222
|
+
|
223
|
+
#### Example Response
|
224
|
+
|
225
|
+
```http
|
226
|
+
Status: 200 OK
|
227
|
+
|
228
|
+
{
|
229
|
+
"views": [
|
230
|
+
{
|
231
|
+
"id": 25,
|
232
|
+
"title": "Tickets updated <12 Hours",
|
233
|
+
"active": true
|
234
|
+
"execution": { ... },
|
235
|
+
"conditions": { ... },
|
236
|
+
"restriction": { ... }
|
237
|
+
},
|
238
|
+
...
|
239
|
+
],
|
240
|
+
"count": 7,
|
241
|
+
"next_page": null,
|
242
|
+
"previous_page": null
|
243
|
+
}
|
244
|
+
```
|
245
|
+
|
246
|
+
### List Views - Compact
|
247
|
+
`GET /api/v2/views/compact.json`
|
248
|
+
|
249
|
+
A compacted shared and personal Views available to the current user
|
250
|
+
|
251
|
+
#### Allowed For:
|
252
|
+
|
253
|
+
* Agents
|
254
|
+
|
255
|
+
#### Using curl
|
256
|
+
|
257
|
+
```bash
|
258
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/compact.json \
|
259
|
+
-v -u {email_address}:{password}
|
260
|
+
```
|
261
|
+
|
262
|
+
#### Example Response
|
263
|
+
|
264
|
+
```http
|
265
|
+
Status: 200 OK
|
266
|
+
|
267
|
+
{
|
268
|
+
"views": [
|
269
|
+
{
|
270
|
+
"id": 25,
|
271
|
+
"title": "Tickets updated <12 Hours",
|
272
|
+
"active": true
|
273
|
+
"execution": { ... },
|
274
|
+
"conditions": { ... },
|
275
|
+
"restriction": { ... }
|
276
|
+
},
|
277
|
+
...
|
278
|
+
],
|
279
|
+
"count": 7,
|
280
|
+
"next_page": null,
|
281
|
+
"previous_page": null
|
282
|
+
}
|
283
|
+
```
|
284
|
+
|
285
|
+
### Getting Views
|
286
|
+
`GET /api/v2/views/{id}.json`
|
287
|
+
|
288
|
+
#### Allowed For:
|
289
|
+
|
290
|
+
* Agents
|
291
|
+
|
292
|
+
#### Using curl
|
293
|
+
|
294
|
+
```bash
|
295
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}.json \
|
296
|
+
-v -u {email_address}:{password}
|
297
|
+
```
|
298
|
+
|
299
|
+
#### Example Response
|
300
|
+
|
301
|
+
```http
|
302
|
+
Status: 200 OK
|
303
|
+
|
304
|
+
{
|
305
|
+
"view": {
|
306
|
+
"id": 25,
|
307
|
+
"title": "Tickets updated <12 Hours",
|
308
|
+
"active": true
|
309
|
+
"execution": { ... },
|
310
|
+
"conditions": { ... },
|
311
|
+
"restriction": { ... }
|
312
|
+
}
|
313
|
+
}
|
314
|
+
```
|
315
|
+
|
316
|
+
### Executing Views
|
317
|
+
`GET /api/v2/views/{id}/execute.json`
|
318
|
+
|
319
|
+
View output sorting can be controlled by passing the sort_by and sort_order parameters in the
|
320
|
+
format described in the table under [view previewing](#previewing-views).
|
321
|
+
|
322
|
+
#### Allowed For:
|
323
|
+
|
324
|
+
* Agents
|
325
|
+
|
326
|
+
#### Using curl
|
327
|
+
|
328
|
+
```bash
|
329
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/execute.json \
|
330
|
+
-v -u {email_address}:{password}
|
331
|
+
```
|
332
|
+
|
333
|
+
With sort options:
|
334
|
+
|
335
|
+
```bash
|
336
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/execute.json?sort_by=id&sort_order=desc \
|
337
|
+
-v -u {email_address}:{password}
|
338
|
+
```
|
339
|
+
|
340
|
+
#### Example Response
|
341
|
+
|
342
|
+
```http
|
343
|
+
Status: 200 OK
|
344
|
+
|
345
|
+
{
|
346
|
+
"view": {
|
347
|
+
"id": 25,
|
348
|
+
"url": ...
|
349
|
+
},
|
350
|
+
"rows": [
|
351
|
+
{
|
352
|
+
"ticket": { ... },
|
353
|
+
"locale": "en-US",
|
354
|
+
"group": 1,
|
355
|
+
...
|
356
|
+
},
|
357
|
+
...
|
358
|
+
],
|
359
|
+
"columns": [
|
360
|
+
{
|
361
|
+
"id": "locale",
|
362
|
+
"title": "Locale"
|
363
|
+
},
|
364
|
+
{
|
365
|
+
"id": 5,
|
366
|
+
"title": "Account",
|
367
|
+
"url": ...
|
368
|
+
},
|
369
|
+
...
|
370
|
+
],
|
371
|
+
"groups": [ ... ]
|
372
|
+
}
|
373
|
+
```
|
374
|
+
|
375
|
+
### Previewing Views
|
376
|
+
`POST /api/v2/views/preview.json`
|
377
|
+
|
378
|
+
Views can be previewed by constructing the conditions in the [proper format](#conditions) and nesting them under the 'view' key.
|
379
|
+
The output can also be controlled by passing in any of the following parameters and nesting them under the 'view' key.
|
380
|
+
|
381
|
+
| Name | Type | Comment
|
382
|
+
| --------------- | ------- | -------
|
383
|
+
| columns | Array | The ticket fields to display. System fields are looked up by name, custom fields by title or id.
|
384
|
+
| group_by | String | When present, the field by which the tickets are grouped
|
385
|
+
| group_order | String | The direction the tickets are grouped. May be one of 'asc' or 'desc'
|
386
|
+
| sort_order | String | The direction the tickets are sorted. May be one of 'asc' or 'desc'
|
387
|
+
| sort_by | String | The ticket field used for sorting. This will either be a title or a custom field id.
|
388
|
+
|
389
|
+
#### Allowed For:
|
390
|
+
|
391
|
+
* Agents
|
392
|
+
|
393
|
+
#### Using curl
|
394
|
+
|
395
|
+
```bash
|
396
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/preview.json \
|
397
|
+
-v -u {email_address}:{password} -X POST -H "Content-Type: application/json" \
|
398
|
+
-d '{"view": {"all": [{"operator": "is", "value": "open", "field": "status"}], "output": {"columns": ["subject"]}}}'
|
399
|
+
```
|
400
|
+
|
401
|
+
#### Example Response
|
402
|
+
|
403
|
+
```http
|
404
|
+
Status: 200 OK
|
405
|
+
|
406
|
+
{
|
407
|
+
"rows": [
|
408
|
+
{
|
409
|
+
"ticket": { ... },
|
410
|
+
"subject": "en-US",
|
411
|
+
...
|
412
|
+
},
|
413
|
+
...
|
414
|
+
],
|
415
|
+
"columns": [
|
416
|
+
{
|
417
|
+
"id": "subject",
|
418
|
+
"title": "Subject"
|
419
|
+
},
|
420
|
+
...
|
421
|
+
]
|
422
|
+
}
|
423
|
+
```
|
424
|
+
|
425
|
+
### View Counts and Caching
|
426
|
+
|
427
|
+
The view count APIs allow an API consumer to estimate how many tickets remain in a View without having to retrieve the entire View.
|
428
|
+
These APIs are intended to help estimate View size; from a business perspective, accuracy becomes less relevant as your View size increases.
|
429
|
+
To ensure quality of service, these counts are cached more heavily as the number of tickets in a View grows. For a View with thousands of tickets,
|
430
|
+
you can expect its count to be cached for 60-90 minutes and may not reflect the actual number of tickets in your View.
|
431
|
+
|
432
|
+
### View Counts
|
433
|
+
`GET /api/v2/views/count_many.json?ids={view_id},{view_id}`
|
434
|
+
|
435
|
+
Calculates the size of the view in terms of number of tickets the view will return.
|
436
|
+
Only returns values for personal and shared views accessible to the user performing
|
437
|
+
the request.
|
438
|
+
|
439
|
+
#### Allowed For:
|
440
|
+
|
441
|
+
* Agents
|
442
|
+
|
443
|
+
#### Using curl
|
444
|
+
|
445
|
+
```bash
|
446
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/count_many.json?ids={view_id} \
|
447
|
+
-v -u {email_address}:{password}
|
448
|
+
```
|
449
|
+
|
450
|
+
#### Example Response
|
451
|
+
|
452
|
+
When you retrieve view counts that are not "fresh", it's recommended to wait for a short
|
453
|
+
while an poll again for only the stale view counts.
|
454
|
+
|
455
|
+
```http
|
456
|
+
Status: 200 OK
|
457
|
+
|
458
|
+
{
|
459
|
+
"view_counts": [{
|
460
|
+
"view_id": 25,
|
461
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/25/count.json",
|
462
|
+
"value": 719,
|
463
|
+
"pretty": "~700",
|
464
|
+
"fresh": true
|
465
|
+
},
|
466
|
+
{
|
467
|
+
"view_id": 78,
|
468
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/78/count.json",
|
469
|
+
"value": null,
|
470
|
+
"pretty": "...",
|
471
|
+
"fresh": false
|
472
|
+
}
|
473
|
+
]}
|
474
|
+
```
|
475
|
+
|
476
|
+
### View Count
|
477
|
+
`GET /api/v2/views/{id}/count.json`
|
478
|
+
|
479
|
+
Returns the ticket count for a single view.
|
480
|
+
|
481
|
+
#### Allowed For:
|
482
|
+
|
483
|
+
* Agents
|
484
|
+
|
485
|
+
#### Using curl
|
486
|
+
|
487
|
+
```bash
|
488
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/count.json \
|
489
|
+
-v -u {email_address}:{password}
|
490
|
+
```
|
491
|
+
|
492
|
+
#### Example Response
|
493
|
+
|
494
|
+
```http
|
495
|
+
Status: 200 OK
|
496
|
+
{
|
497
|
+
"view_count": {
|
498
|
+
"view_id": 25,
|
499
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/25/count.json",
|
500
|
+
"value": 719,
|
501
|
+
"pretty": "~700",
|
502
|
+
"fresh": true
|
503
|
+
}
|
504
|
+
}
|
505
|
+
```
|