embulk-input-yelp 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|