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,92 @@
1
+ [
2
+ {
3
+ "name": "url",
4
+ "type": "string"
5
+ },
6
+ {
7
+ "name": "id",
8
+ "type": "long"
9
+ },
10
+ {
11
+ "name": "type",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "title",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "raw_title",
20
+ "type": "string"
21
+ },
22
+ {
23
+ "name": "description",
24
+ "type": "string"
25
+ },
26
+ {
27
+ "name": "raw_description",
28
+ "type": "string"
29
+ },
30
+ {
31
+ "name": "position",
32
+ "type": "long"
33
+ },
34
+ {
35
+ "name": "active",
36
+ "type": "boolean"
37
+ },
38
+ {
39
+ "name": "required",
40
+ "type": "boolean"
41
+ },
42
+ {
43
+ "name": "collapsed_for_agents",
44
+ "type": "boolean"
45
+ },
46
+ {
47
+ "name": "regexp_for_validation",
48
+ "type": "string"
49
+ },
50
+ {
51
+ "name": "title_in_portal",
52
+ "type": "string"
53
+ },
54
+ {
55
+ "name": "raw_title_in_portal",
56
+ "type": "string"
57
+ },
58
+ {
59
+ "name": "visible_in_portal",
60
+ "type": "boolean"
61
+ },
62
+ {
63
+ "name": "editable_in_portal",
64
+ "type": "boolean"
65
+ },
66
+ {
67
+ "name": "required_in_portal",
68
+ "type": "boolean"
69
+ },
70
+ {
71
+ "name": "tag",
72
+ "type": "string"
73
+ },
74
+ {
75
+ "name": "created_at",
76
+ "type": "timestamp",
77
+ "format": "%Y-%m-%dT%H:%M:%S%z"
78
+ },
79
+ {
80
+ "name": "updated_at",
81
+ "type": "timestamp",
82
+ "format": "%Y-%m-%dT%H:%M:%S%z"
83
+ },
84
+ {
85
+ "name": "removable",
86
+ "type": "boolean"
87
+ },
88
+ {
89
+ "name": "agent_description",
90
+ "type": "string"
91
+ }
92
+ ]
@@ -0,0 +1,98 @@
1
+ [
2
+ {
3
+ "name": "url",
4
+ "type": "string"
5
+ },
6
+ {
7
+ "name": "id",
8
+ "type": "long"
9
+ },
10
+ {
11
+ "name": "ticket_id",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "created_at",
16
+ "type": "timestamp",
17
+ "format": "%Y-%m-%dT%H:%M:%S%z"
18
+ },
19
+ {
20
+ "name": "updated_at",
21
+ "type": "timestamp",
22
+ "format": "%Y-%m-%dT%H:%M:%S%z"
23
+ },
24
+ {
25
+ "name": "group_stations",
26
+ "type": "long"
27
+ },
28
+ {
29
+ "name": "assignee_stations",
30
+ "type": "long"
31
+ },
32
+ {
33
+ "name": "reopens",
34
+ "type": "long"
35
+ },
36
+ {
37
+ "name": "replies",
38
+ "type": "long"
39
+ },
40
+ {
41
+ "name": "assignee_updated_at",
42
+ "type": "timestamp",
43
+ "format": "%Y-%m-%dT%H:%M:%S%z"
44
+ },
45
+ {
46
+ "name": "requester_updated_at",
47
+ "type": "timestamp",
48
+ "format": "%Y-%m-%dT%H:%M:%S%z"
49
+ },
50
+ {
51
+ "name": "status_updated_at",
52
+ "type": "timestamp",
53
+ "format": "%Y-%m-%dT%H:%M:%S%z"
54
+ },
55
+ {
56
+ "name": "initially_assigned_at",
57
+ "type": "timestamp",
58
+ "format": "%Y-%m-%dT%H:%M:%S%z"
59
+ },
60
+ {
61
+ "name": "assigned_at",
62
+ "type": "timestamp",
63
+ "format": "%Y-%m-%dT%H:%M:%S%z"
64
+ },
65
+ {
66
+ "name": "solved_at",
67
+ "type": "string"
68
+ },
69
+ {
70
+ "name": "latest_comment_added_at",
71
+ "type": "timestamp",
72
+ "format": "%Y-%m-%dT%H:%M:%S%z"
73
+ },
74
+ {
75
+ "name": "reply_time_in_minutes",
76
+ "type": "json"
77
+ },
78
+ {
79
+ "name": "first_resolution_time_in_minutes",
80
+ "type": "json"
81
+ },
82
+ {
83
+ "name": "full_resolution_time_in_minutes",
84
+ "type": "json"
85
+ },
86
+ {
87
+ "name": "agent_wait_time_in_minutes",
88
+ "type": "json"
89
+ },
90
+ {
91
+ "name": "requester_wait_time_in_minutes",
92
+ "type": "json"
93
+ },
94
+ {
95
+ "name": "on_hold_time_in_minutes",
96
+ "type": "json"
97
+ }
98
+ ]
@@ -0,0 +1,40 @@
1
+ [
2
+ {
3
+ "name": "id",
4
+ "type": "string"
5
+ },
6
+ {
7
+ "name": "type",
8
+ "type": "string"
9
+ },
10
+ {
11
+ "name": "source",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "description",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "authenticated",
20
+ "type": "boolean"
21
+ },
22
+ {
23
+ "name": "created_at",
24
+ "type": "timestamp",
25
+ "format": "%Y-%m-%dT%H:%M:%S%z"
26
+ },
27
+ {
28
+ "name": "received_at",
29
+ "type": "timestamp",
30
+ "format": "%Y-%m-%dT%H:%M:%S%z"
31
+ },
32
+ {
33
+ "name": "properties",
34
+ "type": "json"
35
+ },
36
+ {
37
+ "name": "user_id",
38
+ "type": "string"
39
+ }
40
+ ]
@@ -0,0 +1,30 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "type": "account",
5
+ "id": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
6
+ "external_id": null,
7
+ "attributes": {
8
+ "account_id": 13,
9
+ "account_name": "ABC"
10
+ },
11
+ "created_at": "2019-01-29T14:45:49.017Z",
12
+ "updated_at": "2019-02-12T18:00:03.000Z"
13
+ },
14
+ {
15
+ "type": "account",
16
+ "id": "8e7caeee-2ecd-11e9-843d-27ae307b8995",
17
+ "external_id": null,
18
+ "attributes": {
19
+ "account_id": 13,
20
+ "account_name": "Wish"
21
+ },
22
+ "created_at": "2019-02-12T13:53:20.522Z",
23
+ "updated_at": "2019-02-12T13:53:21.000Z"
24
+ }
25
+ ],
26
+ "links": {
27
+ "previous": null,
28
+ "next": null
29
+ }
30
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "organizations": [
3
+ {
4
+ "url": "https://abc.zendesk.com/api/v2/organizations/360857467053.json",
5
+ "id": 360857467053,
6
+ "name": "asdasd",
7
+ "shared_tickets": false,
8
+ "shared_comments": false,
9
+ "external_id": null,
10
+ "created_at": "2019-02-20T06:50:45Z",
11
+ "updated_at": "2019-02-28T10:33:21Z",
12
+ "domain_names": [],
13
+ "details": "",
14
+ "notes": "",
15
+ "group_id": null,
16
+ "tags": [],
17
+ "organization_fields": {}
18
+ },
19
+ {
20
+ "url": "https://abc.zendesk.com/api/v2/organizations/360857467055.json",
21
+ "id": 360857467055,
22
+ "name": "asdasd",
23
+ "shared_tickets": false,
24
+ "shared_comments": false,
25
+ "external_id": null,
26
+ "created_at": "2019-02-20T06:50:45Z",
27
+ "updated_at": "2019-02-28T10:33:21Z",
28
+ "domain_names": [],
29
+ "details": "",
30
+ "notes": "",
31
+ "group_id": null,
32
+ "tags": [],
33
+ "organization_fields": {}
34
+ }
35
+ ],
36
+ "next_page": null,
37
+ "previous_page": null,
38
+ "count": 2
39
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "id": "5f0e0e84-2b9c-11e9-8c61-bd1747d6bf7e",
5
+ "relationship_type": "ticket_to_account",
6
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
7
+ "target": "zen:ticket:31",
8
+ "created_at": "2019-02-08T12:23:42.116Z"
9
+ },
10
+ {
11
+ "id": "4cb9289e-2ba2-11e9-99f5-e365e7236130",
12
+ "relationship_type": "ticket_to_account",
13
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
14
+ "target": "zen:ticket:33",
15
+ "created_at": "2019-02-08T13:06:08.341Z"
16
+ },
17
+ {
18
+ "id": "3fce97e8-2ba6-11e9-8c61-6d534711f65b",
19
+ "relationship_type": "ticket_to_account",
20
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
21
+ "target": "zen:ticket:34",
22
+ "created_at": "2019-02-08T13:34:24.658Z"
23
+ },
24
+ {
25
+ "id": "fe79c804-2ba6-11e9-8c61-b7b361f9963d",
26
+ "relationship_type": "ticket_to_account",
27
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
28
+ "target": "zen:ticket:35",
29
+ "created_at": "2019-02-08T13:39:44.547Z"
30
+ },
31
+ {
32
+ "id": "e55f2ed6-2e12-11e9-8c61-0f7cf5995923",
33
+ "relationship_type": "ticket_to_account",
34
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
35
+ "target": "zen:ticket:36",
36
+ "created_at": "2019-02-11T15:37:10.402Z"
37
+ },
38
+ {
39
+ "id": "6464bc61-2e9c-11e9-99f5-ed731bcb6084",
40
+ "relationship_type": "ticket_to_account",
41
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
42
+ "target": "zen:ticket:37",
43
+ "created_at": "2019-02-12T08:01:24.561Z"
44
+ },
45
+ {
46
+ "id": "9b4a091e-2ecb-11e9-843d-4d0e9472c338",
47
+ "relationship_type": "ticket_to_account",
48
+ "source": "915a64d3-23d4-11e9-b8c1-9919f66bb73a",
49
+ "target": "zen:ticket:39",
50
+ "created_at": "2019-02-12T13:39:23.007Z"
51
+ }
52
+ ],
53
+ "links": {
54
+ "previous": null,
55
+ "next": null
56
+ }
57
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "responses": [
3
+ {
4
+ "id": 360003359234,
5
+ "survey_id": 360000012233,
6
+ "delivery_id": 360000156034,
7
+ "recipient_id": 360061097853,
8
+ "user_id": 378157424634,
9
+ "rating": 9,
10
+ "comment": "testing purpose",
11
+ "delivered_at": "2019-01-16T10:33:35.000Z",
12
+ "rated_at": "2019-01-16T12:47:50.000Z",
13
+ "user_email": "dummy@gmail.com",
14
+ "user_name": "dummy",
15
+ "survey_name": "abc"
16
+ }
17
+ ],
18
+ "next_page": "https://abc.zendesk.com/api/v2/nps/incremental/responses.json?start_time=1555418870",
19
+ "count": 1,
20
+ "end_time": 1555418870
21
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "responses": [
3
+ {
4
+ "id": 360003359233,
5
+ "survey_id": 360000012233,
6
+ "delivery_id": 360000156034,
7
+ "recipient_id": 360061097853,
8
+ "user_id": 378157424634,
9
+ "rating": 9,
10
+ "comment": "testing purpose",
11
+ "delivered_at": "2019-01-16T10:33:35.000Z",
12
+ "rated_at": "2019-01-16T12:47:00.000Z",
13
+ "user_email": "dummy@gmail.com",
14
+ "user_name": "dummy",
15
+ "survey_name": "abc"
16
+ },
17
+ {
18
+ "id": 3600033592335,
19
+ "survey_id": 360000012233,
20
+ "delivery_id": 360000156034,
21
+ "recipient_id": 360061097853,
22
+ "user_id": 378157424634,
23
+ "rating": 9,
24
+ "comment": "testing purpose",
25
+ "delivered_at": "2019-01-16T10:33:35.000Z",
26
+ "rated_at": "2019-01-16T12:47:00.000Z",
27
+ "user_email": "dummy@gmail.com",
28
+ "user_name": "dummy",
29
+ "survey_name": "abc"
30
+ }
31
+ ],
32
+ "next_page": "https://abc.zendesk.com/api/v2/nps/incremental/responses.json?start_time=1555418820",
33
+ "count": 1000,
34
+ "end_time": 1555418820
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "responses": [
3
+ {
4
+ "id": 360003359233,
5
+ "survey_id": 360000012233,
6
+ "delivery_id": 360000156034,
7
+ "recipient_id": 360061097853,
8
+ "user_id": 378157424634,
9
+ "rating": 9,
10
+ "comment": "testing purpose",
11
+ "delivered_at": "2019-01-16T10:33:35.000Z",
12
+ "rated_at": "2019-01-16T12:47:00.000Z",
13
+ "user_email": "dummy@gmail.com",
14
+ "user_name": "dummy",
15
+ "survey_name": "abc"
16
+ },
17
+ {
18
+ "id": 3600033592335,
19
+ "survey_id": 360000012233,
20
+ "delivery_id": 360000156034,
21
+ "recipient_id": 360061097853,
22
+ "user_id": 378157424634,
23
+ "rating": 9,
24
+ "comment": "testing purpose",
25
+ "delivered_at": "2019-01-16T10:33:35.000Z",
26
+ "rated_at": "2019-01-16T12:47:00.000Z",
27
+ "user_email": "dummy@gmail.com",
28
+ "user_name": "dummy",
29
+ "survey_name": "abc"
30
+ }
31
+ ],
32
+ "next_page": "https://abc.zendesk.com/api/v2/nps/incremental/responses.json?start_time=1555418820",
33
+ "count": 999,
34
+ "end_time": 1555418820
35
+ }