embulk-input-zendesk-all 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +5 -0
  4. data/CHANGELOG.md +126 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +91 -0
  7. data/build.gradle +123 -0
  8. data/config/checkstyle/checkstyle.xml +128 -0
  9. data/config/checkstyle/default.xml +108 -0
  10. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  11. data/gradle/wrapper/gradle-wrapper.properties +5 -0
  12. data/gradlew +172 -0
  13. data/gradlew.bat +84 -0
  14. data/lib/embulk/guess/zendesk.rb +21 -0
  15. data/lib/embulk/input/zendesk.rb +3 -0
  16. data/src/main/java/org/embulk/input/zendesk/RecordImporter.java +134 -0
  17. data/src/main/java/org/embulk/input/zendesk/ZendeskInputPlugin.java +513 -0
  18. data/src/main/java/org/embulk/input/zendesk/clients/ZendeskRestClient.java +291 -0
  19. data/src/main/java/org/embulk/input/zendesk/models/AuthenticationMethod.java +23 -0
  20. data/src/main/java/org/embulk/input/zendesk/models/Target.java +47 -0
  21. data/src/main/java/org/embulk/input/zendesk/models/ZendeskException.java +25 -0
  22. data/src/main/java/org/embulk/input/zendesk/services/ZendeskCustomObjectService.java +110 -0
  23. data/src/main/java/org/embulk/input/zendesk/services/ZendeskNPSService.java +30 -0
  24. data/src/main/java/org/embulk/input/zendesk/services/ZendeskNormalServices.java +347 -0
  25. data/src/main/java/org/embulk/input/zendesk/services/ZendeskService.java +14 -0
  26. data/src/main/java/org/embulk/input/zendesk/services/ZendeskSupportAPIService.java +63 -0
  27. data/src/main/java/org/embulk/input/zendesk/services/ZendeskUserEventService.java +158 -0
  28. data/src/main/java/org/embulk/input/zendesk/stream/PagingSpliterator.java +40 -0
  29. data/src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java +42 -0
  30. data/src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/SunshineSpliterator.java +66 -0
  31. data/src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/UserEventSpliterator.java +35 -0
  32. data/src/main/java/org/embulk/input/zendesk/stream/paginator/support/OrganizationSpliterator.java +13 -0
  33. data/src/main/java/org/embulk/input/zendesk/stream/paginator/support/SupportSpliterator.java +44 -0
  34. data/src/main/java/org/embulk/input/zendesk/stream/paginator/support/UserSpliterator.java +13 -0
  35. data/src/main/java/org/embulk/input/zendesk/utils/ZendeskConstants.java +72 -0
  36. data/src/main/java/org/embulk/input/zendesk/utils/ZendeskDateUtils.java +68 -0
  37. data/src/main/java/org/embulk/input/zendesk/utils/ZendeskUtils.java +92 -0
  38. data/src/test/java/org/embulk/input/zendesk/TestRecordImporter.java +114 -0
  39. data/src/test/java/org/embulk/input/zendesk/TestZendeskInputPlugin.java +402 -0
  40. data/src/test/java/org/embulk/input/zendesk/clients/TestZendeskRestClient.java +337 -0
  41. data/src/test/java/org/embulk/input/zendesk/services/TestZendeskCustomObjectService.java +161 -0
  42. data/src/test/java/org/embulk/input/zendesk/services/TestZendeskNPSService.java +56 -0
  43. data/src/test/java/org/embulk/input/zendesk/services/TestZendeskNormalService.java +261 -0
  44. data/src/test/java/org/embulk/input/zendesk/services/TestZendeskSupportAPIService.java +130 -0
  45. data/src/test/java/org/embulk/input/zendesk/services/TestZendeskUserEventService.java +158 -0
  46. data/src/test/java/org/embulk/input/zendesk/utils/TestZendeskDateUtils.java +87 -0
  47. data/src/test/java/org/embulk/input/zendesk/utils/TestZendeskUtil.java +22 -0
  48. data/src/test/java/org/embulk/input/zendesk/utils/ZendeskPluginTestRuntime.java +133 -0
  49. data/src/test/java/org/embulk/input/zendesk/utils/ZendeskTestHelper.java +92 -0
  50. data/src/test/resources/config/base.yml +14 -0
  51. data/src/test/resources/config/base_validator.yml +48 -0
  52. data/src/test/resources/config/incremental.yml +54 -0
  53. data/src/test/resources/config/non-incremental.yml +39 -0
  54. data/src/test/resources/config/nps.yml +31 -0
  55. data/src/test/resources/config/object_records.yml +24 -0
  56. data/src/test/resources/config/relationship_records.yml +23 -0
  57. data/src/test/resources/config/user_events.yml +29 -0
  58. data/src/test/resources/config/util.yml +18 -0
  59. data/src/test/resources/data/client.json +293 -0
  60. data/src/test/resources/data/duplicate_user.json +0 -0
  61. data/src/test/resources/data/empty_result.json +7 -0
  62. data/src/test/resources/data/error_data.json +187 -0
  63. data/src/test/resources/data/expected/ticket_column.json +148 -0
  64. data/src/test/resources/data/expected/ticket_column_with_related_objects.json +152 -0
  65. data/src/test/resources/data/expected/ticket_fields_column.json +92 -0
  66. data/src/test/resources/data/expected/ticket_metrics_column.json +98 -0
  67. data/src/test/resources/data/expected/user_events_column.json +40 -0
  68. data/src/test/resources/data/object_records.json +30 -0
  69. data/src/test/resources/data/organization.json +39 -0
  70. data/src/test/resources/data/relationship_records.json +57 -0
  71. data/src/test/resources/data/scores.json +21 -0
  72. data/src/test/resources/data/scores_share_same_time_with_next_page.json +35 -0
  73. data/src/test/resources/data/scores_share_same_time_without_next_page.json +35 -0
  74. data/src/test/resources/data/simple_organization.json +23 -0
  75. data/src/test/resources/data/simple_user.json +50 -0
  76. data/src/test/resources/data/simple_user_event.json +19 -0
  77. data/src/test/resources/data/ticket_events_share_same_time_with_next_page.json +279 -0
  78. data/src/test/resources/data/ticket_events_share_same_time_without_next_page.json +279 -0
  79. data/src/test/resources/data/ticket_events_updated_by_system_records.json +279 -0
  80. data/src/test/resources/data/ticket_fields.json +225 -0
  81. data/src/test/resources/data/ticket_metrics.json +397 -0
  82. data/src/test/resources/data/ticket_share_same_time_with_next_page.json +232 -0
  83. data/src/test/resources/data/ticket_share_same_time_without_next_page.json +232 -0
  84. data/src/test/resources/data/ticket_with_related_objects.json +67 -0
  85. data/src/test/resources/data/ticket_with_updated_by_system_records.json +187 -0
  86. data/src/test/resources/data/tickets.json +232 -0
  87. data/src/test/resources/data/tickets_continue.json +52 -0
  88. data/src/test/resources/data/user_event.json +19 -0
  89. data/src/test/resources/data/user_event_contain_latter_create_at.json +19 -0
  90. data/src/test/resources/data/user_event_multiple.json +33 -0
  91. data/src/test/resources/data/util.json +19 -0
  92. data/src/test/resources/data/util_page.json +227 -0
  93. metadata +168 -0
@@ -0,0 +1,279 @@
1
+ {
2
+ "ticket_events": [
3
+ {
4
+ "child_events": [
5
+ {
6
+ "id": 614323587494,
7
+ "via": "Sample Ticket",
8
+ "via_reference_id": null,
9
+ "comment_present": true,
10
+ "comment_public": true,
11
+ "event_type": "Comment"
12
+ },
13
+ {
14
+ "id": 614323587594,
15
+ "via": "Sample Ticket",
16
+ "via_reference_id": null,
17
+ "assignee_id": 374673563333,
18
+ "event_type": "Create"
19
+ },
20
+ {
21
+ "id": 614323587674,
22
+ "via": "Sample Ticket",
23
+ "via_reference_id": null,
24
+ "subject": "Sample ticket: Meet the ticket",
25
+ "event_type": "Create"
26
+ },
27
+ {
28
+ "id": 614323587694,
29
+ "via": "Sample Ticket",
30
+ "via_reference_id": null,
31
+ "tags": [
32
+ "sample",
33
+ "support",
34
+ "zendesk"
35
+ ],
36
+ "added_tags": [
37
+ "sample",
38
+ "support",
39
+ "zendesk"
40
+ ],
41
+ "removed_tags": [],
42
+ "event_type": "Create"
43
+ },
44
+ {
45
+ "id": 614323587734,
46
+ "via": "Sample Ticket",
47
+ "via_reference_id": null,
48
+ "group_id": 360003235353,
49
+ "event_type": "Create"
50
+ },
51
+ {
52
+ "id": 614323587774,
53
+ "via": "Sample Ticket",
54
+ "via_reference_id": null,
55
+ "status": "open",
56
+ "event_type": "Create"
57
+ },
58
+ {
59
+ "id": 614323587794,
60
+ "via": "Sample Ticket",
61
+ "via_reference_id": null,
62
+ "requester_id": 374737473854,
63
+ "event_type": "Create"
64
+ }
65
+ ],
66
+ "id": 614323587394,
67
+ "ticket_id": 1,
68
+ "timestamp": 1550645445,
69
+ "created_at": "2019-02-20T06:50:45Z",
70
+ "updater_id": 374737473854,
71
+ "via": "Sample Ticket",
72
+ "system": {
73
+ "client": null,
74
+ "location": null,
75
+ "latitude": null,
76
+ "longitude": null
77
+ },
78
+ "event_type": "Audit"
79
+ },
80
+ {
81
+ "child_events": [
82
+ {
83
+ "id": 614323589934,
84
+ "via": "Sample Ticket",
85
+ "via_reference_id": null,
86
+ "type": "incident",
87
+ "event_type": "Change",
88
+ "previous_value": "0"
89
+ },
90
+ {
91
+ "id": 614323589954,
92
+ "via": "Sample Ticket",
93
+ "via_reference_id": null,
94
+ "priority": "normal",
95
+ "event_type": "Change",
96
+ "previous_value": "0"
97
+ }
98
+ ],
99
+ "id": 614323589894,
100
+ "ticket_id": 1,
101
+ "timestamp": 1550645445,
102
+ "created_at": "2019-02-20T06:50:45Z",
103
+ "updater_id": 374673563333,
104
+ "via": "Sample Ticket",
105
+ "system": {
106
+ "client": null,
107
+ "location": null,
108
+ "latitude": null,
109
+ "longitude": null
110
+ },
111
+ "event_type": "Audit"
112
+ },
113
+ {
114
+ "child_events": [
115
+ {
116
+ "id": 613784741493,
117
+ "via": "Web form",
118
+ "via_reference_id": null,
119
+ "comment_present": true,
120
+ "comment_public": true,
121
+ "event_type": "Comment"
122
+ },
123
+ {
124
+ "id": 613784741673,
125
+ "via": "Web form",
126
+ "via_reference_id": null,
127
+ "subject": "ticket1",
128
+ "event_type": "Create"
129
+ },
130
+ {
131
+ "id": 613784741713,
132
+ "via": "Web form",
133
+ "via_reference_id": null,
134
+ "requester_id": 374673563333,
135
+ "event_type": "Create"
136
+ },
137
+ {
138
+ "id": 613784741753,
139
+ "via": "Web form",
140
+ "via_reference_id": null,
141
+ "status": "open",
142
+ "event_type": "Create"
143
+ },
144
+ {
145
+ "id": 613784741773,
146
+ "via": "Web form",
147
+ "via_reference_id": null,
148
+ "priority": null,
149
+ "event_type": "Create"
150
+ },
151
+ {
152
+ "id": 613784741793,
153
+ "via": "Web form",
154
+ "via_reference_id": null,
155
+ "type": null,
156
+ "event_type": "Create"
157
+ },
158
+ {
159
+ "id": 613784741813,
160
+ "via": "Web form",
161
+ "via_reference_id": null,
162
+ "assignee_id": 374673563333,
163
+ "event_type": "Create"
164
+ },
165
+ {
166
+ "id": 613784741833,
167
+ "via": "Web form",
168
+ "via_reference_id": null,
169
+ "group_id": 360003235353,
170
+ "event_type": "Create"
171
+ },
172
+ {
173
+ "id": 613784741853,
174
+ "via": "Web form",
175
+ "via_reference_id": null,
176
+ "organization_id": "360857467053",
177
+ "event_type": "Create"
178
+ }
179
+ ],
180
+ "id": 613784741453,
181
+ "ticket_id": 2,
182
+ "timestamp": 1550645510,
183
+ "created_at": "2019-02-20T06:51:50Z",
184
+ "updater_id": 374673563333,
185
+ "via": "Web form",
186
+ "system": {
187
+ "client": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36",
188
+ "location": "Quang Ngai, 63, Vietnam",
189
+ "latitude": 15.116700000000009,
190
+ "longitude": 108.80000000000001
191
+ },
192
+ "event_type": "Audit"
193
+ },
194
+ {
195
+ "child_events": [
196
+ {
197
+ "id": 613784845113,
198
+ "via": "Web form",
199
+ "via_reference_id": null,
200
+ "comment_present": true,
201
+ "comment_public": true,
202
+ "event_type": "Comment"
203
+ },
204
+ {
205
+ "id": 613784845173,
206
+ "via": "Web form",
207
+ "via_reference_id": null,
208
+ "subject": "ticket2",
209
+ "event_type": "Create"
210
+ },
211
+ {
212
+ "id": 613784845193,
213
+ "via": "Web form",
214
+ "via_reference_id": null,
215
+ "requester_id": 374673563333,
216
+ "event_type": "Create"
217
+ },
218
+ {
219
+ "id": 613784845233,
220
+ "via": "Web form",
221
+ "via_reference_id": null,
222
+ "status": "open",
223
+ "event_type": "Create"
224
+ },
225
+ {
226
+ "id": 613784845253,
227
+ "via": "Web form",
228
+ "via_reference_id": null,
229
+ "priority": null,
230
+ "event_type": "Create"
231
+ },
232
+ {
233
+ "id": 613784845293,
234
+ "via": "Web form",
235
+ "via_reference_id": null,
236
+ "type": null,
237
+ "event_type": "Create"
238
+ },
239
+ {
240
+ "id": 613784845353,
241
+ "via": "Web form",
242
+ "via_reference_id": null,
243
+ "assignee_id": 374673563333,
244
+ "event_type": "Create"
245
+ },
246
+ {
247
+ "id": 613784845393,
248
+ "via": "Web form",
249
+ "via_reference_id": null,
250
+ "group_id": 360003235353,
251
+ "event_type": "Create"
252
+ },
253
+ {
254
+ "id": 613784845433,
255
+ "via": "Web form",
256
+ "via_reference_id": null,
257
+ "organization_id": "360857467053",
258
+ "event_type": "Create"
259
+ }
260
+ ],
261
+ "id": 613784845093,
262
+ "ticket_id": 3,
263
+ "timestamp": 1550645522,
264
+ "created_at": "2019-02-20T06:52:02Z",
265
+ "updater_id": 374673563333,
266
+ "via": "Web form",
267
+ "system": {
268
+ "client": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36",
269
+ "location": "Quang Ngai, 63, Vietnam",
270
+ "latitude": 15.116700000000009,
271
+ "longitude": 108.80000000000001
272
+ },
273
+ "event_type": "Audit"
274
+ }
275
+ ],
276
+ "count": 100,
277
+ "next_page": "https://abc.zendesk.com/api/v2/incremental/ticket_events.json?sort_by=updated_at&start_time=1550645522",
278
+ "end_time": 1550645522
279
+ }
@@ -0,0 +1,225 @@
1
+ {
2
+ "ticket_fields": [
3
+ {
4
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417093.json",
5
+ "id": 360015417093,
6
+ "type": "subject",
7
+ "title": "Subject",
8
+ "raw_title": "Subject",
9
+ "description": "",
10
+ "raw_description": "",
11
+ "position": 1,
12
+ "active": true,
13
+ "required": false,
14
+ "collapsed_for_agents": false,
15
+ "regexp_for_validation": null,
16
+ "title_in_portal": "Subject",
17
+ "raw_title_in_portal": "Subject",
18
+ "visible_in_portal": true,
19
+ "editable_in_portal": true,
20
+ "required_in_portal": true,
21
+ "tag": null,
22
+ "created_at": "2019-02-20T06:50:45Z",
23
+ "updated_at": "2019-02-20T06:50:46Z",
24
+ "removable": false,
25
+ "agent_description": null
26
+ },
27
+ {
28
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417113.json",
29
+ "id": 360015417113,
30
+ "type": "description",
31
+ "title": "Description",
32
+ "raw_title": "Description",
33
+ "description": "Please enter the details of your request. A member of our support staff will respond as soon as possible.",
34
+ "raw_description": "Please enter the details of your request. A member of our support staff will respond as soon as possible.",
35
+ "position": 2,
36
+ "active": true,
37
+ "required": false,
38
+ "collapsed_for_agents": false,
39
+ "regexp_for_validation": null,
40
+ "title_in_portal": "Description",
41
+ "raw_title_in_portal": "Description",
42
+ "visible_in_portal": true,
43
+ "editable_in_portal": true,
44
+ "required_in_portal": true,
45
+ "tag": null,
46
+ "created_at": "2019-02-20T06:50:45Z",
47
+ "updated_at": "2019-02-20T06:50:46Z",
48
+ "removable": false,
49
+ "agent_description": null
50
+ },
51
+ {
52
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417133.json",
53
+ "id": 360015417133,
54
+ "type": "status",
55
+ "title": "Status",
56
+ "raw_title": "Status",
57
+ "description": "Request status",
58
+ "raw_description": "Request status",
59
+ "position": 3,
60
+ "active": true,
61
+ "required": false,
62
+ "collapsed_for_agents": false,
63
+ "regexp_for_validation": null,
64
+ "title_in_portal": "Status",
65
+ "raw_title_in_portal": "Status",
66
+ "visible_in_portal": false,
67
+ "editable_in_portal": false,
68
+ "required_in_portal": false,
69
+ "tag": null,
70
+ "created_at": "2019-02-20T06:50:45Z",
71
+ "updated_at": "2019-02-20T06:50:46Z",
72
+ "removable": false,
73
+ "agent_description": null,
74
+ "system_field_options": [
75
+ {
76
+ "name": "Open",
77
+ "value": "open"
78
+ },
79
+ {
80
+ "name": "Pending",
81
+ "value": "pending"
82
+ },
83
+ {
84
+ "name": "Solved",
85
+ "value": "solved"
86
+ }
87
+ ],
88
+ "sub_type_id": 0
89
+ },
90
+ {
91
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417153.json",
92
+ "id": 360015417153,
93
+ "type": "tickettype",
94
+ "title": "Type",
95
+ "raw_title": "Type",
96
+ "description": "Request type",
97
+ "raw_description": "Request type",
98
+ "position": 4,
99
+ "active": true,
100
+ "required": false,
101
+ "collapsed_for_agents": false,
102
+ "regexp_for_validation": null,
103
+ "title_in_portal": "Type",
104
+ "raw_title_in_portal": "Type",
105
+ "visible_in_portal": false,
106
+ "editable_in_portal": false,
107
+ "required_in_portal": false,
108
+ "tag": null,
109
+ "created_at": "2019-02-20T06:50:45Z",
110
+ "updated_at": "2019-02-20T06:50:46Z",
111
+ "removable": true,
112
+ "agent_description": null,
113
+ "system_field_options": [
114
+ {
115
+ "name": "Question",
116
+ "value": "question"
117
+ },
118
+ {
119
+ "name": "Incident",
120
+ "value": "incident"
121
+ },
122
+ {
123
+ "name": "Problem",
124
+ "value": "problem"
125
+ },
126
+ {
127
+ "name": "Task",
128
+ "value": "task"
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417173.json",
134
+ "id": 360015417173,
135
+ "type": "priority",
136
+ "title": "Priority",
137
+ "raw_title": "Priority",
138
+ "description": "Request priority",
139
+ "raw_description": "Request priority",
140
+ "position": 5,
141
+ "active": true,
142
+ "required": false,
143
+ "collapsed_for_agents": false,
144
+ "regexp_for_validation": null,
145
+ "title_in_portal": "Priority",
146
+ "raw_title_in_portal": "Priority",
147
+ "visible_in_portal": true,
148
+ "editable_in_portal": false,
149
+ "required_in_portal": false,
150
+ "tag": null,
151
+ "created_at": "2019-02-20T06:50:45Z",
152
+ "updated_at": "2019-02-20T06:50:46Z",
153
+ "removable": true,
154
+ "agent_description": null,
155
+ "system_field_options": [
156
+ {
157
+ "name": "Low",
158
+ "value": "low"
159
+ },
160
+ {
161
+ "name": "Normal",
162
+ "value": "normal"
163
+ },
164
+ {
165
+ "name": "High",
166
+ "value": "high"
167
+ },
168
+ {
169
+ "name": "Urgent",
170
+ "value": "urgent"
171
+ }
172
+ ],
173
+ "sub_type_id": 0
174
+ },
175
+ {
176
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417193.json",
177
+ "id": 360015417193,
178
+ "type": "group",
179
+ "title": "Group",
180
+ "raw_title": "Group",
181
+ "description": "Request group",
182
+ "raw_description": "Request group",
183
+ "position": 6,
184
+ "active": true,
185
+ "required": false,
186
+ "collapsed_for_agents": false,
187
+ "regexp_for_validation": null,
188
+ "title_in_portal": "Group",
189
+ "raw_title_in_portal": "Group",
190
+ "visible_in_portal": false,
191
+ "editable_in_portal": false,
192
+ "required_in_portal": false,
193
+ "tag": null,
194
+ "created_at": "2019-02-20T06:50:45Z",
195
+ "updated_at": "2019-02-20T06:50:46Z",
196
+ "removable": false,
197
+ "agent_description": null
198
+ },
199
+ {
200
+ "url": "https://abc.zendesk.com/api/v2/ticket_fields/360015417213.json",
201
+ "id": 360015417213,
202
+ "type": "assignee",
203
+ "title": "Assignee",
204
+ "raw_title": "Assignee",
205
+ "description": "Agent assigned to your request",
206
+ "raw_description": "Agent assigned to your request",
207
+ "position": 7,
208
+ "active": true,
209
+ "required": true,
210
+ "collapsed_for_agents": false,
211
+ "regexp_for_validation": null,
212
+ "title_in_portal": "Assignee",
213
+ "raw_title_in_portal": "Assignee",
214
+ "visible_in_portal": true,
215
+ "editable_in_portal": false,
216
+ "required_in_portal": false,
217
+ "tag": null,
218
+ "created_at": "2019-02-20T06:50:45Z",
219
+ "updated_at": "2019-02-20T06:50:46Z",
220
+ "removable": false,
221
+ "agent_description": null
222
+ }
223
+ ],
224
+ "count": 110
225
+ }