Skip to content

Commit 1cf33de

Browse files
authored
Merge pull request #8 from sakama/add-validation
Add validation for auto_create_table option
2 parents b088717 + e5a0b5f commit 1cf33de

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

src/main/java/org/embulk/output/dynamodb/DynamodbOutputPlugin.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ public void jsonColumn(Column column)
300300
list.add(getRawFromValue(v));
301301
}
302302
item.withList(column.getName(), list);
303-
} else {
303+
}
304+
else {
304305
item.withJSON(column.getName(), jsonValue.toJson());
305306
}
306307
}
@@ -314,26 +315,32 @@ private void addNullValue(String name)
314315
private Object getRawFromValue(Value value)
315316
{
316317
if (value.isBooleanValue()) {
317-
return ((BooleanValue)value).getBoolean();
318-
} else if (value.isStringValue()) {
318+
return ((BooleanValue) value).getBoolean();
319+
}
320+
else if (value.isStringValue()) {
319321
return value.toString();
320-
} else if (value.isIntegerValue()) {
321-
return ((IntegerValue)value).asLong();
322-
} else if (value.isFloatValue()) {
323-
return ((FloatValue)value).toDouble();
324-
} else if (value.isArrayValue()) {
322+
}
323+
else if (value.isIntegerValue()) {
324+
return ((IntegerValue) value).asLong();
325+
}
326+
else if (value.isFloatValue()) {
327+
return ((FloatValue) value).toDouble();
328+
}
329+
else if (value.isArrayValue()) {
325330
List<Object> list = new ArrayList<>();
326331
for (Value v : value.asArrayValue()) {
327332
list.add(getRawFromValue(v));
328333
}
329334
return list;
330-
} else if (value.isMapValue()) {
335+
}
336+
else if (value.isMapValue()) {
331337
Map<String, Object> map = new LinkedHashMap<>();
332338
for (Map.Entry<Value, Value> entry : value.asMapValue().entrySet()) {
333339
map.put(entry.getKey().toString(), getRawFromValue(entry.getValue()));
334340
}
335341
return map;
336-
} else if (value.isNilValue()) {
342+
}
343+
else if (value.isNilValue()) {
337344
return null;
338345
}
339346
throw new DataException("Record has invalid json column value");

src/main/java/org/embulk/output/dynamodb/DynamodbUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ protected void configCheck(DynamodbOutputPlugin.PluginTask task)
111111
if (!task.getPrimaryKey().isPresent() || !task.getPrimaryKeyType().isPresent()) {
112112
throw new ConfigException("If auto_create_table is true, both primary_key and primary_key_type is necessary");
113113
}
114+
if (!task.getReadCapacityUnits().isPresent() || !task.getWriteCapacityUnits().isPresent()) {
115+
throw new ConfigException("If auto_create_table is true, 'read_capacity_units' and 'write_capacity_units' is required.");
116+
}
114117
}
115118
}
116119

0 commit comments

Comments
 (0)