embulk-input-zendesk 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/build.gradle +1 -1
- data/classpath/embulk-input-zendesk-0.3.1.jar +0 -0
- data/src/main/java/org/embulk/input/zendesk/ZendeskInputPlugin.java +4 -1
- data/src/main/java/org/embulk/input/zendesk/clients/ZendeskRestClient.java +3 -2
- data/src/main/java/org/embulk/input/zendesk/utils/ZendeskConstants.java +0 -2
- data/src/test/java/org/embulk/input/zendesk/clients/TestZendeskRestClient.java +5 -5
- metadata +3 -3
- data/classpath/embulk-input-zendesk-0.3.0.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad43cfba07a05a5677083290abad4876dfaa652a
|
4
|
+
data.tar.gz: 90dbefa73c45d26e7a499e8c5b1f6618af4512f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bcbdc100b762d7bfa73cddc605d34b64040dcb218e37f31e03b0342dbf4594cbfe5f970d861997dbb85a6b734911fa291db526bbc50a6a933f424ae4924a6ac
|
7
|
+
data.tar.gz: ceef0158dc916745848727ccc3dd58bd8f63d38647475b3f4a0fee75aa95a690b690ba030d99a08fecdd3d14a0a6fa5fa0e2cf2a34ef109d45aba597dd48cdf5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 0.3.1 - 2019-04-09
|
2
|
+
* [fixed] Fix checking 404 by status code when fetching related objects #52 [#52](https://github.com/treasure-data/embulk-input-zendesk/pull/52)
|
3
|
+
|
1
4
|
## 0.3.0 - 2019-04-08
|
2
5
|
* [enhancement] Convert embulk-input-zendesk to Java #50 [#50](https://github.com/treasure-data/embulk-input-zendesk/pull/50)
|
3
6
|
|
data/build.gradle
CHANGED
Binary file
|
@@ -8,6 +8,7 @@ import com.google.common.annotations.VisibleForTesting;
|
|
8
8
|
import com.google.common.base.Throwables;
|
9
9
|
import com.google.common.collect.ImmutableList;
|
10
10
|
|
11
|
+
import org.apache.http.HttpStatus;
|
11
12
|
import org.embulk.config.Config;
|
12
13
|
import org.embulk.config.ConfigDefault;
|
13
14
|
import org.embulk.config.ConfigDiff;
|
@@ -19,6 +20,7 @@ import org.embulk.config.TaskSource;
|
|
19
20
|
import org.embulk.exec.GuessExecutor;
|
20
21
|
import org.embulk.input.zendesk.models.AuthenticationMethod;
|
21
22
|
import org.embulk.input.zendesk.models.Target;
|
23
|
+
import org.embulk.input.zendesk.models.ZendeskException;
|
22
24
|
import org.embulk.input.zendesk.services.ZendeskSupportAPIService;
|
23
25
|
import org.embulk.input.zendesk.utils.ZendeskConstants;
|
24
26
|
import org.embulk.input.zendesk.utils.ZendeskDateUtils;
|
@@ -434,11 +436,12 @@ public class ZendeskInputPlugin implements InputPlugin
|
|
434
436
|
}
|
435
437
|
catch (final ConfigException e) {
|
436
438
|
// Sometimes we get 404 when having invalid endpoint, so ignore when we get 404 InvalidEndpoint
|
437
|
-
if (!e.
|
439
|
+
if (!(e.getCause() instanceof ZendeskException && ((ZendeskException) e.getCause()).getStatusCode() == HttpStatus.SC_NOT_FOUND)) {
|
438
440
|
throw e;
|
439
441
|
}
|
440
442
|
}
|
441
443
|
});
|
444
|
+
|
442
445
|
ZendeskUtils.addRecord(jsonNode, schema, pageBuilder);
|
443
446
|
}
|
444
447
|
|
@@ -117,7 +117,8 @@ public class ZendeskRestClient
|
|
117
117
|
}
|
118
118
|
catch (RetryExecutor.RetryGiveupException | InterruptedException e) {
|
119
119
|
if (e instanceof RetryExecutor.RetryGiveupException && e.getCause() != null && e.getCause() instanceof ZendeskException) {
|
120
|
-
throw new ConfigException(e.getCause().getMessage()
|
120
|
+
throw new ConfigException("Status: '" + ((ZendeskException) (e.getCause())).getStatusCode() + "', error message: '" + e.getCause().getMessage() + "'",
|
121
|
+
e.getCause());
|
121
122
|
}
|
122
123
|
throw new ConfigException(e);
|
123
124
|
}
|
@@ -177,7 +178,7 @@ public class ZendeskRestClient
|
|
177
178
|
//That means "No records from start_time". We can recognize it same as 200.
|
178
179
|
return false;
|
179
180
|
}
|
180
|
-
throw new ConfigException("Status: '" + status + "', error message '" + message + "'");
|
181
|
+
throw new ConfigException("Status: '" + status + "', error message: '" + message + "'");
|
181
182
|
}
|
182
183
|
|
183
184
|
if (status == ZendeskConstants.HttpStatus.TOO_MANY_REQUEST || status == HttpStatus.SC_INTERNAL_SERVER_ERROR
|
@@ -39,10 +39,8 @@ public class ZendeskConstants
|
|
39
39
|
public static final String ISO_TIMESTAMP_FORMAT = "yyyy-MM-dd'T'HH:mm:ssXXX";
|
40
40
|
public static final String ISO_INSTANT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
41
41
|
public static final String TOO_RECENT_START_TIME = "Too recent start_time.";
|
42
|
-
public static final String INVALID_END_POINT_RESPONSE = "\"error\":\"InvalidEndpoint\"";
|
43
42
|
public static final int RECORDS_SIZE_PER_PAGE = 100;
|
44
43
|
public static final int MAXIMUM_RECORDS_INCREMENTAL = 1000;
|
45
|
-
public static final int TOO_MANY_REQUEST = 429;
|
46
44
|
|
47
45
|
// 1 MB
|
48
46
|
public static final int GUESS_BUFFER_SIZE = 1024 * 1024;
|
@@ -90,7 +90,7 @@ public class TestZendeskRestClient
|
|
90
90
|
@Test
|
91
91
|
public void doGetRetryFail429WithoutRetryAfter()
|
92
92
|
{
|
93
|
-
String expectedMessage = "Number of allowed incremental export API requests per minute exceeded";
|
93
|
+
String expectedMessage = "Status: '429', error message: 'Number of allowed incremental export API requests per minute exceeded'";
|
94
94
|
int expectedRetryTime = 3;
|
95
95
|
testExceptionMessageForDoGet("doGet429", expectedMessage, expectedRetryTime);
|
96
96
|
}
|
@@ -98,7 +98,7 @@ public class TestZendeskRestClient
|
|
98
98
|
@Test
|
99
99
|
public void doGetRetryFail429WithRetryAfter()
|
100
100
|
{
|
101
|
-
String expectedMessage = "Number of allowed incremental export API requests per minute exceeded";
|
101
|
+
String expectedMessage = "Status: '429', error message: 'Number of allowed incremental export API requests per minute exceeded'";
|
102
102
|
int expectedRetryTime = 3;
|
103
103
|
|
104
104
|
when(response.containsHeader("x-rate-limit")).thenReturn(true);
|
@@ -123,7 +123,7 @@ public class TestZendeskRestClient
|
|
123
123
|
@Test
|
124
124
|
public void doGetRetry422FailBecauseNotContainTooRecentStartTime()
|
125
125
|
{
|
126
|
-
String expectedMessage = "Status: '422', error message 'dummy text'";
|
126
|
+
String expectedMessage = "Status: '422', error message: 'dummy text'";
|
127
127
|
int expectedRetryTime = 1;
|
128
128
|
testExceptionMessageForDoGet("doGet422NotContainTooRecentStartTime", expectedMessage, expectedRetryTime);
|
129
129
|
}
|
@@ -131,7 +131,7 @@ public class TestZendeskRestClient
|
|
131
131
|
@Test
|
132
132
|
public void doGetNotRetry422BecauseContainTooRecentStartTime()
|
133
133
|
{
|
134
|
-
String expectedMessage = "Status: '422', error message 'dummy text'";
|
134
|
+
String expectedMessage = "Status: '422', error message: 'dummy text'";
|
135
135
|
int expectedRetryTime = 1;
|
136
136
|
testExceptionMessageForDoGet("doGet422ContainTooRecentStartTime", expectedMessage, expectedRetryTime);
|
137
137
|
}
|
@@ -158,7 +158,7 @@ public class TestZendeskRestClient
|
|
158
158
|
public void doGetRetry404()
|
159
159
|
{
|
160
160
|
setup("doGet404");
|
161
|
-
String expectedMessage = "dummy text";
|
161
|
+
String expectedMessage = "Status: '404', error message: 'dummy text'";
|
162
162
|
int expectedRetryTime = 1;
|
163
163
|
try {
|
164
164
|
zendeskRestClient.doGet("any", task, false);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hieu.duong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,7 @@ files:
|
|
96
96
|
- src/test/resources/data/util.json
|
97
97
|
- src/test/resources/data/util_page.json
|
98
98
|
- classpath/commons-logging-1.2.jar
|
99
|
-
- classpath/embulk-input-zendesk-0.3.
|
99
|
+
- classpath/embulk-input-zendesk-0.3.1.jar
|
100
100
|
- classpath/httpcore-4.4.10.jar
|
101
101
|
- classpath/httpclient-4.5.6.jar
|
102
102
|
- classpath/commons-codec-1.10.jar
|
Binary file
|