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 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