embulk-input-yelp 0.2.1 → 0.2.2
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/build.gradle +1 -1
- data/src/main/java/org/embulk/input/yelp/YelpInputPluginDelegate.java +56 -14
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 783d1729496c8fcbff44ca42358f5692a30f7b29
|
4
|
+
data.tar.gz: 36caf4c514c2ada8ddb51829743330a9d6064632
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e8b86b970ab51d00e4883b0d29fe5642d726e1566a64cb944990f7d3f3cb29de76a3002083324812cc36a17ed20441bc8928a21ad4474d9fdf6c7057ea3ad2d
|
7
|
+
data.tar.gz: 4f63f3a4ad043e27a5b0237c9d839ad8d5dc09dde4ee5bef4e0260b81eee4791b921db47dfffde87dd0435f459a2b611c27df733ca6ba713453c81b72ff4160f
|
data/build.gradle
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
package org.embulk.input.yelp;
|
2
2
|
|
3
|
+
import java.util.HashMap;
|
3
4
|
import java.util.List;
|
4
5
|
import java.util.Locale;
|
6
|
+
import java.util.Map;
|
5
7
|
|
6
8
|
import javax.ws.rs.core.Response;
|
7
9
|
import javax.ws.rs.client.WebTarget;
|
@@ -11,6 +13,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
11
13
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
12
14
|
|
13
15
|
import com.google.common.base.Optional;
|
16
|
+
import com.google.common.collect.ImmutableMap;
|
14
17
|
import com.google.common.collect.Ordering;
|
15
18
|
|
16
19
|
import org.embulk.config.Config;
|
@@ -31,6 +34,7 @@ import org.embulk.base.restclient.ServiceDataSplitter;
|
|
31
34
|
import org.embulk.base.restclient.jackson.JacksonJsonPointerValueLocator;
|
32
35
|
import org.embulk.base.restclient.jackson.JacksonServiceRecord;
|
33
36
|
import org.embulk.base.restclient.jackson.JacksonServiceResponseMapper;
|
37
|
+
import org.embulk.base.restclient.jackson.JacksonTopLevelValueLocator;
|
34
38
|
import org.embulk.base.restclient.jackson.StringJsonParser;
|
35
39
|
import org.embulk.base.restclient.record.RecordImporter;
|
36
40
|
|
@@ -66,6 +70,10 @@ public class YelpInputPluginDelegate
|
|
66
70
|
@ConfigDefault("null")
|
67
71
|
public Optional<Integer> getRadius();
|
68
72
|
|
73
|
+
@Config("columns")
|
74
|
+
@ConfigDefault("{}")
|
75
|
+
public Map<String, String> getColumns();
|
76
|
+
|
69
77
|
@Config("maximum_retries")
|
70
78
|
@ConfigDefault("7")
|
71
79
|
public int getMaximumRetries();
|
@@ -99,21 +107,38 @@ public class YelpInputPluginDelegate
|
|
99
107
|
@Override // Overridden from |ServiceResponseMapperBuildable|
|
100
108
|
public JacksonServiceResponseMapper buildServiceResponseMapper(PluginTask task)
|
101
109
|
{
|
110
|
+
HashMap<String, String> columnMap = new HashMap<String, String>();
|
111
|
+
for (String defaultColumn : DEFAULT_COLUMNS) {
|
112
|
+
if (task.getColumns().containsKey(defaultColumn)) {
|
113
|
+
columnMap.put(defaultColumn, task.getColumns().get(defaultColumn));
|
114
|
+
}
|
115
|
+
else {
|
116
|
+
columnMap.put(defaultColumn, defaultColumn);
|
117
|
+
}
|
118
|
+
}
|
102
119
|
return JacksonServiceResponseMapper.builder()
|
103
|
-
.add("rating", Types.LONG)
|
104
|
-
.add("price", Types.STRING)
|
105
|
-
.add("phone", Types.STRING)
|
106
|
-
.add("id", Types.STRING)
|
107
|
-
.add("is_closed", Types.BOOLEAN)
|
108
|
-
.add("categories", Types.JSON)
|
109
|
-
.add("review_count", Types.LONG)
|
110
|
-
.add("name", Types.STRING)
|
111
|
-
.add("url", Types.STRING)
|
112
|
-
.add(new JacksonJsonPointerValueLocator("/coordinates/latitude"),
|
113
|
-
|
114
|
-
|
115
|
-
.add(new JacksonJsonPointerValueLocator("/
|
116
|
-
|
120
|
+
.add(new JacksonTopLevelValueLocator("rating"), columnMap.get("rating"), Types.LONG)
|
121
|
+
.add(new JacksonTopLevelValueLocator("price"), columnMap.get("price"), Types.STRING)
|
122
|
+
.add(new JacksonTopLevelValueLocator("phone"), columnMap.get("phone"), Types.STRING)
|
123
|
+
.add(new JacksonTopLevelValueLocator("id"), columnMap.get("id"), Types.STRING)
|
124
|
+
.add(new JacksonTopLevelValueLocator("is_closed"), columnMap.get("is_closed"), Types.BOOLEAN)
|
125
|
+
.add(new JacksonTopLevelValueLocator("categories"), columnMap.get("categories"), Types.JSON)
|
126
|
+
.add(new JacksonTopLevelValueLocator("review_count"), columnMap.get("review_count"), Types.LONG)
|
127
|
+
.add(new JacksonTopLevelValueLocator("name"), columnMap.get("name"), Types.STRING)
|
128
|
+
.add(new JacksonTopLevelValueLocator("url"), columnMap.get("url"), Types.STRING)
|
129
|
+
.add(new JacksonJsonPointerValueLocator("/coordinates/latitude"),
|
130
|
+
columnMap.get("latitude"),
|
131
|
+
Types.STRING)
|
132
|
+
.add(new JacksonJsonPointerValueLocator("/coordinates/longitude"),
|
133
|
+
columnMap.get("longitude"),
|
134
|
+
Types.STRING)
|
135
|
+
.add(new JacksonTopLevelValueLocator("image_url"), columnMap.get("image_url"), Types.STRING)
|
136
|
+
.add(new JacksonJsonPointerValueLocator("/location/city"),
|
137
|
+
columnMap.get("location_city"),
|
138
|
+
Types.STRING)
|
139
|
+
.add(new JacksonJsonPointerValueLocator("/location/country"),
|
140
|
+
columnMap.get("location_country"),
|
141
|
+
Types.STRING)
|
117
142
|
.build();
|
118
143
|
}
|
119
144
|
|
@@ -245,5 +270,22 @@ public class YelpInputPluginDelegate
|
|
245
270
|
});
|
246
271
|
}
|
247
272
|
|
273
|
+
private static final String[] DEFAULT_COLUMNS = {
|
274
|
+
"rating",
|
275
|
+
"price",
|
276
|
+
"phone",
|
277
|
+
"id",
|
278
|
+
"is_closed",
|
279
|
+
"categories",
|
280
|
+
"review_count",
|
281
|
+
"name",
|
282
|
+
"url",
|
283
|
+
"latitude",
|
284
|
+
"longitude",
|
285
|
+
"image_url",
|
286
|
+
"location_city",
|
287
|
+
"location_country"
|
288
|
+
};
|
289
|
+
|
248
290
|
private final Logger logger = Exec.getLogger(YelpInputPluginDelegate.class);
|
249
291
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-yelp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dai MIKURUBE
|
@@ -61,7 +61,7 @@ files:
|
|
61
61
|
- src/test/java/org/embulk/input/yelp/TestYelpInputPlugin.java
|
62
62
|
- classpath/aopalliance-repackaged-2.5.0-b32.jar
|
63
63
|
- classpath/embulk-base-restclient-0.5.0.jar
|
64
|
-
- classpath/embulk-input-yelp-0.2.
|
64
|
+
- classpath/embulk-input-yelp-0.2.2.jar
|
65
65
|
- classpath/embulk-util-retryhelper-jaxrs-0.5.0.jar
|
66
66
|
- classpath/hk2-api-2.5.0-b32.jar
|
67
67
|
- classpath/hk2-locator-2.5.0-b32.jar
|