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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b35f786752e36fc39d933b59e2b0319d56bd49b0
4
- data.tar.gz: aa49ccf14ab02a25a15fad0a73f18a9d1e6ea0ef
3
+ metadata.gz: 783d1729496c8fcbff44ca42358f5692a30f7b29
4
+ data.tar.gz: 36caf4c514c2ada8ddb51829743330a9d6064632
5
5
  SHA512:
6
- metadata.gz: ce515a1732f763144619d2b94b2362b021515a83d83fcf16bd9ea4b2f142cd919be6918d5336cdc2199d10828d13aa4679dd4cbfbc02af14bf21c36bd2c94c35
7
- data.tar.gz: 83658e28d129ed5d0ccc78529212e707823a8b37d688365d01355d825f2fd1b8b86a5e3784f22994e0950bb3d66b3201e8134bde18dd19a2e9ffa702d4a14ccc
6
+ metadata.gz: 4e8b86b970ab51d00e4883b0d29fe5642d726e1566a64cb944990f7d3f3cb29de76a3002083324812cc36a17ed20441bc8928a21ad4474d9fdf6c7057ea3ad2d
7
+ data.tar.gz: 4f63f3a4ad043e27a5b0237c9d839ad8d5dc09dde4ee5bef4e0260b81eee4791b921db47dfffde87dd0435f459a2b611c27df733ca6ba713453c81b72ff4160f
data/build.gradle CHANGED
@@ -17,7 +17,7 @@ configurations {
17
17
  provided
18
18
  }
19
19
 
20
- version = "0.2.1"
20
+ version = "0.2.2"
21
21
 
22
22
  sourceCompatibility = 1.7
23
23
  targetCompatibility = 1.7
@@ -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"), "latitude", Types.STRING)
113
- .add(new JacksonJsonPointerValueLocator("/coordinates/longitude"), "longitude", Types.STRING)
114
- .add("image_url", Types.STRING)
115
- .add(new JacksonJsonPointerValueLocator("/location/city"), "location_city", Types.STRING)
116
- .add(new JacksonJsonPointerValueLocator("/location/country"), "location_country", Types.STRING)
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.1
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.1.jar
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