embulk-output-kintone 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -0
- data/.gitignore +0 -1
- data/build.gradle +18 -19
- data/classpath/embulk-output-kintone-0.4.1.jar +0 -0
- data/classpath/shadow-kintone-java-client-0.4.1-all.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +1 -1
- data/settings.gradle +2 -0
- data/shadow-kintone-java-client/build.gradle +35 -0
- data/src/main/java/org/embulk/output/kintone/KintonePageOutput.java +166 -121
- data/src/main/java/org/embulk/output/kintone/KintoneRetryOption.java +19 -0
- data/src/main/java/org/embulk/output/kintone/PluginTask.java +3 -3
- data/src/test/java/com/kintone/client/Json.java +16 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnOptionBuilder.java +63 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorTest.java +297 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorVerifier.java +52 -0
- data/src/test/java/org/embulk/output/kintone/KintonePageOutputVerifier.java +226 -0
- data/src/test/java/org/embulk/output/kintone/OutputPageBuilder.java +92 -0
- data/src/test/java/org/embulk/output/kintone/TestKintoneOutputPlugin.java +163 -1
- data/src/test/java/org/embulk/output/kintone/TestTask.java +40 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskMode.java +31 -0
- data/src/test/resources/logback-test.xml +14 -0
- data/src/test/resources/org/embulk/output/kintone/config.yml +4 -0
- data/src/test/resources/org/embulk/output/kintone/task/config.yml +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/config.yml +54 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/input.csv +7 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_records.jsonl +4 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/values.json +1 -0
- metadata +25 -3
- data/classpath/embulk-output-kintone-0.4.0.jar +0 -0
@@ -1,3 +1,165 @@
|
|
1
1
|
package org.embulk.output.kintone;
|
2
2
|
|
3
|
-
|
3
|
+
import com.google.common.io.Resources;
|
4
|
+
import com.kintone.client.Json;
|
5
|
+
import com.kintone.client.model.record.Record;
|
6
|
+
import com.kintone.client.model.record.RecordForUpdate;
|
7
|
+
import com.kintone.client.model.record.UpdateKey;
|
8
|
+
import java.io.File;
|
9
|
+
import java.net.URISyntaxException;
|
10
|
+
import java.net.URL;
|
11
|
+
import java.nio.file.Path;
|
12
|
+
import java.nio.file.Paths;
|
13
|
+
import java.util.Arrays;
|
14
|
+
import java.util.Collections;
|
15
|
+
import java.util.List;
|
16
|
+
import java.util.Objects;
|
17
|
+
import java.util.function.Function;
|
18
|
+
import java.util.stream.Collectors;
|
19
|
+
import org.embulk.config.ConfigSource;
|
20
|
+
import org.embulk.config.TaskSource;
|
21
|
+
import org.embulk.spi.OutputPlugin;
|
22
|
+
import org.embulk.spi.Schema;
|
23
|
+
import org.embulk.spi.TransactionalPageOutput;
|
24
|
+
import org.embulk.spi.json.JsonParser;
|
25
|
+
import org.embulk.test.EmbulkTests;
|
26
|
+
import org.embulk.test.TestingEmbulk;
|
27
|
+
import org.junit.Rule;
|
28
|
+
import org.msgpack.value.Value;
|
29
|
+
|
30
|
+
public class TestKintoneOutputPlugin extends KintoneOutputPlugin {
|
31
|
+
private static final JsonParser PARSER = new JsonParser();
|
32
|
+
|
33
|
+
@Rule
|
34
|
+
public final TestingEmbulk embulk =
|
35
|
+
TestingEmbulk.builder()
|
36
|
+
.registerPlugin(OutputPlugin.class, "kintone", TestKintoneOutputPlugin.class)
|
37
|
+
.build();
|
38
|
+
|
39
|
+
@Override
|
40
|
+
public TransactionalPageOutput open(TaskSource taskSource, Schema schema, int taskIndex) {
|
41
|
+
String test = taskSource.get(String.class, "Domain");
|
42
|
+
String mode = taskSource.get(String.class, "Mode");
|
43
|
+
String field = taskSource.get(String.class, "UpdateKeyName");
|
44
|
+
return new KintonePageOutputVerifier(
|
45
|
+
super.open(taskSource, schema, taskIndex),
|
46
|
+
test,
|
47
|
+
field,
|
48
|
+
getValues(test),
|
49
|
+
getAddRecords(test, mode),
|
50
|
+
getUpdateRecords(test, mode, field));
|
51
|
+
}
|
52
|
+
|
53
|
+
protected void runOutput(String configName, String inputName) throws Exception {
|
54
|
+
System.gc();
|
55
|
+
ConfigSource outConfig = loadConfigYaml(configName);
|
56
|
+
Path inputPath = getResourceFile(inputName).toPath();
|
57
|
+
embulk.runOutput(outConfig, inputPath);
|
58
|
+
}
|
59
|
+
|
60
|
+
protected String getConfigName() {
|
61
|
+
return getName("config.yml");
|
62
|
+
}
|
63
|
+
|
64
|
+
protected String getInputName() {
|
65
|
+
return getName("input.csv");
|
66
|
+
}
|
67
|
+
|
68
|
+
protected String getName(String name) {
|
69
|
+
return name;
|
70
|
+
}
|
71
|
+
|
72
|
+
protected ConfigSource config(String... strings) {
|
73
|
+
return Arrays.stream(strings)
|
74
|
+
.map(this::fromYamlString)
|
75
|
+
.reduce(ConfigSource::merge)
|
76
|
+
.orElseGet(() -> fromYamlString("{}"));
|
77
|
+
}
|
78
|
+
|
79
|
+
protected ConfigSource loadConfigYaml(String name) {
|
80
|
+
ConfigSource config = loadYamlResource("config.yml");
|
81
|
+
return config.merge(loadYamlResource(name));
|
82
|
+
}
|
83
|
+
|
84
|
+
protected ConfigSource loadYamlResource(String name) {
|
85
|
+
return embulk.loadYamlResource(getResourceName(name));
|
86
|
+
}
|
87
|
+
|
88
|
+
protected ConfigSource fromYamlString(String string) {
|
89
|
+
return embulk.configLoader().fromYamlString(string);
|
90
|
+
}
|
91
|
+
|
92
|
+
private static List<String> getValues(String test) {
|
93
|
+
String name = String.format("%s/values.json", test);
|
94
|
+
String json = existsResource(name) ? readResource(name) : null;
|
95
|
+
return json == null || json.isEmpty()
|
96
|
+
? Collections.emptyList()
|
97
|
+
: PARSER.parse(json).asArrayValue().list().stream()
|
98
|
+
.map(Value::toJson)
|
99
|
+
.collect(Collectors.toList());
|
100
|
+
}
|
101
|
+
|
102
|
+
private static List<Record> getAddRecords(String test, String mode) {
|
103
|
+
String name = String.format("%s/%s_add_records.jsonl", test, mode);
|
104
|
+
String jsonl = existsResource(name) ? readResource(name) : null;
|
105
|
+
return jsonl == null || jsonl.isEmpty()
|
106
|
+
? Collections.emptyList()
|
107
|
+
: Arrays.stream(jsonl.split("\\r?\\n|\\r"))
|
108
|
+
.map(s -> Json.parse(s, Record.class))
|
109
|
+
.collect(Collectors.toList());
|
110
|
+
}
|
111
|
+
|
112
|
+
private static List<RecordForUpdate> getUpdateRecords(String test, String mode, String field) {
|
113
|
+
Function<Record, UpdateKey> key = getKey(field);
|
114
|
+
String name = String.format("%s/%s_update_records.jsonl", test, mode);
|
115
|
+
String jsonl = existsResource(name) ? readResource(name) : null;
|
116
|
+
return jsonl == null || jsonl.isEmpty()
|
117
|
+
? Collections.emptyList()
|
118
|
+
: Arrays.stream(jsonl.split("\\r?\\n|\\r"))
|
119
|
+
.map(s -> Json.parse(s, Record.class))
|
120
|
+
.map(record -> new RecordForUpdate(key.apply(record), record.removeField(field)))
|
121
|
+
.collect(Collectors.toList());
|
122
|
+
}
|
123
|
+
|
124
|
+
private static Function<Record, UpdateKey> getKey(String field) {
|
125
|
+
return field == null
|
126
|
+
? record -> null
|
127
|
+
: record ->
|
128
|
+
field.matches("^.*_number$")
|
129
|
+
? new UpdateKey(field, record.getNumberFieldValue(field))
|
130
|
+
: new UpdateKey(field, record.getSingleLineTextFieldValue(field));
|
131
|
+
}
|
132
|
+
|
133
|
+
private static File getResourceFile(String name) {
|
134
|
+
return toPath(Objects.requireNonNull(getResource(getResourceName(name)))).toFile();
|
135
|
+
}
|
136
|
+
|
137
|
+
private static String readResource(String name) {
|
138
|
+
return EmbulkTests.readResource(getResourceName(name));
|
139
|
+
}
|
140
|
+
|
141
|
+
private static boolean existsResource(String name) {
|
142
|
+
return getResource(getResourceName(name)) != null;
|
143
|
+
}
|
144
|
+
|
145
|
+
private static String getResourceName(String name) {
|
146
|
+
return String.format("org/embulk/output/kintone/%s", name);
|
147
|
+
}
|
148
|
+
|
149
|
+
private static Path toPath(URL url) {
|
150
|
+
try {
|
151
|
+
return Paths.get(url.toURI());
|
152
|
+
} catch (URISyntaxException e) {
|
153
|
+
throw new RuntimeException(e);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
@SuppressWarnings("UnstableApiUsage")
|
158
|
+
private static URL getResource(String resourceName) {
|
159
|
+
try {
|
160
|
+
return Resources.getResource(resourceName);
|
161
|
+
} catch (IllegalArgumentException e) {
|
162
|
+
return null;
|
163
|
+
}
|
164
|
+
}
|
165
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
package org.embulk.output.kintone;
|
2
|
+
|
3
|
+
import org.embulk.config.ConfigSource;
|
4
|
+
import org.junit.Before;
|
5
|
+
|
6
|
+
public class TestTask extends TestKintoneOutputPlugin {
|
7
|
+
private ConfigSource config;
|
8
|
+
|
9
|
+
@Before
|
10
|
+
public void before() {
|
11
|
+
config = fromYamlString("{}");
|
12
|
+
}
|
13
|
+
|
14
|
+
@Override
|
15
|
+
protected ConfigSource loadConfigYaml(String name) {
|
16
|
+
ConfigSource config = super.loadConfigYaml("task/config.yml");
|
17
|
+
return config.merge(loadYamlResource(name)).merge(this.config);
|
18
|
+
}
|
19
|
+
|
20
|
+
protected void merge(ConfigSource config) {
|
21
|
+
this.config.merge(config);
|
22
|
+
}
|
23
|
+
|
24
|
+
protected void runOutput() throws Exception {
|
25
|
+
String test = config.get(String.class, "domain");
|
26
|
+
runOutput(getConfigName(test), getInputName(test));
|
27
|
+
}
|
28
|
+
|
29
|
+
private String getConfigName(String test) {
|
30
|
+
return getName(test, getConfigName());
|
31
|
+
}
|
32
|
+
|
33
|
+
private String getInputName(String test) {
|
34
|
+
return getName(test, getInputName());
|
35
|
+
}
|
36
|
+
|
37
|
+
private static String getName(String test, String name) {
|
38
|
+
return String.format("%s/%s", test, name);
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
package org.embulk.output.kintone;
|
2
|
+
|
3
|
+
import net.jcip.annotations.NotThreadSafe;
|
4
|
+
import org.junit.Test;
|
5
|
+
|
6
|
+
@NotThreadSafe
|
7
|
+
public class TestTaskMode extends TestTask {
|
8
|
+
@Override
|
9
|
+
public void before() {
|
10
|
+
super.before();
|
11
|
+
merge(config("domain: task/mode"));
|
12
|
+
}
|
13
|
+
|
14
|
+
@Test
|
15
|
+
public void testInsert() throws Exception {
|
16
|
+
merge(config("mode: insert"));
|
17
|
+
runOutput();
|
18
|
+
}
|
19
|
+
|
20
|
+
@Test
|
21
|
+
public void testUpdate() throws Exception {
|
22
|
+
merge(config("mode: update", "update_key: string_number"));
|
23
|
+
runOutput();
|
24
|
+
}
|
25
|
+
|
26
|
+
@Test
|
27
|
+
public void testUpsert() throws Exception {
|
28
|
+
merge(config("mode: upsert", "update_key: double_single_line_text"));
|
29
|
+
runOutput();
|
30
|
+
}
|
31
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!DOCTYPE configuration>
|
3
|
+
<configuration>
|
4
|
+
<import class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"/>
|
5
|
+
<import class="ch.qos.logback.core.ConsoleAppender"/>
|
6
|
+
<appender name="STDOUT" class="ConsoleAppender">
|
7
|
+
<encoder class="PatternLayoutEncoder">
|
8
|
+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
|
9
|
+
</encoder>
|
10
|
+
</appender>
|
11
|
+
<root level="debug">
|
12
|
+
<appender-ref ref="STDOUT"/>
|
13
|
+
</root>
|
14
|
+
</configuration>
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
column_options:
|
2
|
+
boolean_single_line_text:
|
3
|
+
field_code: boolean_single_line_text
|
4
|
+
type: SINGLE_LINE_TEXT
|
5
|
+
long_single_line_text:
|
6
|
+
field_code: long_single_line_text
|
7
|
+
type: SINGLE_LINE_TEXT
|
8
|
+
long:
|
9
|
+
field_code: long
|
10
|
+
type: NUMBER
|
11
|
+
double_single_line_text:
|
12
|
+
field_code: double_single_line_text
|
13
|
+
type: SINGLE_LINE_TEXT
|
14
|
+
double:
|
15
|
+
field_code: double
|
16
|
+
type: NUMBER
|
17
|
+
string_single_line_text:
|
18
|
+
field_code: string_single_line_text
|
19
|
+
type: SINGLE_LINE_TEXT
|
20
|
+
string:
|
21
|
+
field_code: string
|
22
|
+
type: MULTI_LINE_TEXT
|
23
|
+
string_number:
|
24
|
+
field_code: string_number
|
25
|
+
type: NUMBER
|
26
|
+
string_check_box:
|
27
|
+
field_code: string_check_box
|
28
|
+
type: CHECK_BOX
|
29
|
+
string_drop_down:
|
30
|
+
field_code: string_drop_down
|
31
|
+
type: DROP_DOWN
|
32
|
+
string_link:
|
33
|
+
field_code: string_link
|
34
|
+
type: LINK
|
35
|
+
timestamp_date:
|
36
|
+
field_code: timestamp_date
|
37
|
+
type: DATE
|
38
|
+
timestamp_date_jst:
|
39
|
+
field_code: timestamp_date_jst
|
40
|
+
type: DATE
|
41
|
+
timezone: Asia/Tokyo
|
42
|
+
timestamp_date_pst:
|
43
|
+
field_code: timestamp_date_pst
|
44
|
+
type: DATE
|
45
|
+
timezone: US/Pacific
|
46
|
+
timestamp:
|
47
|
+
field_code: timestamp
|
48
|
+
type: DATETIME
|
49
|
+
json_single_line_text:
|
50
|
+
field_code: json_single_line_text
|
51
|
+
type: SINGLE_LINE_TEXT
|
52
|
+
json:
|
53
|
+
field_code: json
|
54
|
+
type: MULTI_LINE_TEXT
|
@@ -0,0 +1,7 @@
|
|
1
|
+
boolean_single_line_text:boolean,long_single_line_text:long,long:long,double_single_line_text:double,double:double,string_single_line_text:string,string:string,string_number:string,string_check_box:string,string_drop_down:string,string_link:string,timestamp_date:timestamp,timestamp_date_jst:timestamp,timestamp_date_pst:timestamp,timestamp:timestamp,json_single_line_text:json,json:json
|
2
|
+
,,,,,,,,,,,,,,,,
|
3
|
+
,,,1,,,,,,,,,,,,,
|
4
|
+
true,123,123,123,123,abc,abc,123,"123,abc",abc,abc,1999-12-31 23:59:59.000 +0000,1999-12-31 23:59:59.000 +0000,1999-12-31 23:59:59.000 +0000,1999-12-31 23:59:59.000 +0000,"""abc""","""abc"""
|
5
|
+
,,,,,,,,,,,,,,,,
|
6
|
+
,,,,,,,1,,,,,,,,,
|
7
|
+
false,456,456,456,456,def,def,456,"456,def",def,def,2000-01-01 00:00:00.000 +0000,2000-01-01 00:00:00.000 +0000,2000-01-01 00:00:00.000 +0000,2000-01-01 00:00:00.000 +0000,"""def""","""def"""
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
2
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"1.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
3
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"true"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123"},"long":{"type":"NUMBER","value":"123"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123.0"},"double":{"type":"NUMBER","value":"123.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"string":{"type":"MULTI_LINE_TEXT","value":"abc"},"string_number":{"type":"NUMBER","value":"123"},"string_check_box":{"type":"CHECK_BOX","value":["123","abc"]},"string_drop_down":{"type":"DROP_DOWN","value":"abc"},"string_link":{"type":"LINK","value":"abc"},"timestamp_date":{"type":"DATE","value":"1999-12-31"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"1999-12-31T23:59:59Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"json":{"type":"MULTI_LINE_TEXT","value":"abc"}}
|
4
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
5
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":"1"},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
6
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456"},"long":{"type":"NUMBER","value":"456"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456.0"},"double":{"type":"NUMBER","value":"456.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"string":{"type":"MULTI_LINE_TEXT","value":"def"},"string_number":{"type":"NUMBER","value":"456"},"string_check_box":{"type":"CHECK_BOX","value":["456","def"]},"string_drop_down":{"type":"DROP_DOWN","value":"def"},"string_link":{"type":"LINK","value":"def"},"timestamp_date":{"type":"DATE","value":"2000-01-01"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"2000-01-01T00:00:00Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"json":{"type":"MULTI_LINE_TEXT","value":"def"}}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"true"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123"},"long":{"type":"NUMBER","value":"123"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123.0"},"double":{"type":"NUMBER","value":"123.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"string":{"type":"MULTI_LINE_TEXT","value":"abc"},"string_number":{"type":"NUMBER","value":"123"},"string_check_box":{"type":"CHECK_BOX","value":["123","abc"]},"string_drop_down":{"type":"DROP_DOWN","value":"abc"},"string_link":{"type":"LINK","value":"abc"},"timestamp_date":{"type":"DATE","value":"1999-12-31"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"1999-12-31T23:59:59Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"json":{"type":"MULTI_LINE_TEXT","value":"abc"}}
|
2
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":"1"},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
3
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456"},"long":{"type":"NUMBER","value":"456"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456.0"},"double":{"type":"NUMBER","value":"456.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"string":{"type":"MULTI_LINE_TEXT","value":"def"},"string_number":{"type":"NUMBER","value":"456"},"string_check_box":{"type":"CHECK_BOX","value":["456","def"]},"string_drop_down":{"type":"DROP_DOWN","value":"def"},"string_link":{"type":"LINK","value":"def"},"timestamp_date":{"type":"DATE","value":"2000-01-01"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"2000-01-01T00:00:00Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"json":{"type":"MULTI_LINE_TEXT","value":"def"}}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"1.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
2
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"true"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123"},"long":{"type":"NUMBER","value":"123"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"123.0"},"double":{"type":"NUMBER","value":"123.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"string":{"type":"MULTI_LINE_TEXT","value":"abc"},"string_number":{"type":"NUMBER","value":"123"},"string_check_box":{"type":"CHECK_BOX","value":["123","abc"]},"string_drop_down":{"type":"DROP_DOWN","value":"abc"},"string_link":{"type":"LINK","value":"abc"},"timestamp_date":{"type":"DATE","value":"1999-12-31"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"1999-12-31T23:59:59Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"abc"},"json":{"type":"MULTI_LINE_TEXT","value":"abc"}}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
2
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":null},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
3
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"long":{"type":"NUMBER","value":null},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"0.0"},"double":{"type":"NUMBER","value":"0.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"string":{"type":"MULTI_LINE_TEXT","value":""},"string_number":{"type":"NUMBER","value":"1"},"string_check_box":{"type":"CHECK_BOX","value":["null"]},"string_drop_down":{"type":"DROP_DOWN","value":""},"string_link":{"type":"LINK","value":""},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":""},"json":{"type":"MULTI_LINE_TEXT","value":""}}
|
4
|
+
{"boolean_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"false"},"long_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456"},"long":{"type":"NUMBER","value":"456"},"double_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"456.0"},"double":{"type":"NUMBER","value":"456.0"},"string_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"string":{"type":"MULTI_LINE_TEXT","value":"def"},"string_number":{"type":"NUMBER","value":"456"},"string_check_box":{"type":"CHECK_BOX","value":["456","def"]},"string_drop_down":{"type":"DROP_DOWN","value":"def"},"string_link":{"type":"LINK","value":"def"},"timestamp_date":{"type":"DATE","value":"2000-01-01"},"timestamp_date_jst":{"type":"DATE","value":"2000-01-01"},"timestamp_date_pst":{"type":"DATE","value":"1999-12-31"},"timestamp":{"type":"DATETIME","value":"2000-01-01T00:00:00Z"},"json_single_line_text":{"type":"SINGLE_LINE_TEXT","value":"def"},"json":{"type":"MULTI_LINE_TEXT","value":"def"}}
|
@@ -0,0 +1 @@
|
|
1
|
+
["0.0","1.0","123.0","0.0","0.0","456.0"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-kintone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takeshi fujita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,7 +52,8 @@ files:
|
|
52
52
|
- README.md
|
53
53
|
- Rakefile
|
54
54
|
- build.gradle
|
55
|
-
- classpath/embulk-output-kintone-0.4.
|
55
|
+
- classpath/embulk-output-kintone-0.4.1.jar
|
56
|
+
- classpath/shadow-kintone-java-client-0.4.1-all.jar
|
56
57
|
- config/checkstyle/checkstyle.xml
|
57
58
|
- config/checkstyle/default.xml
|
58
59
|
- gradle/wrapper/gradle-wrapper.jar
|
@@ -60,13 +61,34 @@ files:
|
|
60
61
|
- gradlew
|
61
62
|
- gradlew.bat
|
62
63
|
- lib/embulk/output/kintone.rb
|
64
|
+
- settings.gradle
|
65
|
+
- shadow-kintone-java-client/build.gradle
|
63
66
|
- src/main/java/org/embulk/output/kintone/KintoneColumnOption.java
|
64
67
|
- src/main/java/org/embulk/output/kintone/KintoneColumnVisitor.java
|
65
68
|
- src/main/java/org/embulk/output/kintone/KintoneMode.java
|
66
69
|
- src/main/java/org/embulk/output/kintone/KintoneOutputPlugin.java
|
67
70
|
- src/main/java/org/embulk/output/kintone/KintonePageOutput.java
|
71
|
+
- src/main/java/org/embulk/output/kintone/KintoneRetryOption.java
|
68
72
|
- src/main/java/org/embulk/output/kintone/PluginTask.java
|
73
|
+
- src/test/java/com/kintone/client/Json.java
|
74
|
+
- src/test/java/org/embulk/output/kintone/KintoneColumnOptionBuilder.java
|
75
|
+
- src/test/java/org/embulk/output/kintone/KintoneColumnVisitorTest.java
|
76
|
+
- src/test/java/org/embulk/output/kintone/KintoneColumnVisitorVerifier.java
|
77
|
+
- src/test/java/org/embulk/output/kintone/KintonePageOutputVerifier.java
|
78
|
+
- src/test/java/org/embulk/output/kintone/OutputPageBuilder.java
|
69
79
|
- src/test/java/org/embulk/output/kintone/TestKintoneOutputPlugin.java
|
80
|
+
- src/test/java/org/embulk/output/kintone/TestTask.java
|
81
|
+
- src/test/java/org/embulk/output/kintone/TestTaskMode.java
|
82
|
+
- src/test/resources/logback-test.xml
|
83
|
+
- src/test/resources/org/embulk/output/kintone/config.yml
|
84
|
+
- src/test/resources/org/embulk/output/kintone/task/config.yml
|
85
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/config.yml
|
86
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/input.csv
|
87
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/insert_add_records.jsonl
|
88
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/update_update_records.jsonl
|
89
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_records.jsonl
|
90
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_records.jsonl
|
91
|
+
- src/test/resources/org/embulk/output/kintone/task/mode/values.json
|
70
92
|
homepage: https://github.com/trocco-io/embulk-output-kintone
|
71
93
|
licenses:
|
72
94
|
- MIT
|
Binary file
|