Skip to content

Commit c26a93e

Browse files
committed
Fix date serialization to be valid RFC 3339
By default, Jackson is missing the colon in the time zone offset. Closes #26.
1 parent ba78a35 commit c26a93e

4 files changed

Lines changed: 11 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
CHANGELOG
22
=========
33

4+
1.5.1
5+
-----------------
6+
7+
* Corrected serialization of `/event/time` input to be valid RFC 3339. Reported by
8+
Luis Rojas. GitHub #26.
9+
410
1.5.0 (2017-07-07)
511
------------------
612

src/main/java/com/maxmind/minfraud/AbstractModel.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.fasterxml.jackson.databind.MapperFeature;
55
import com.fasterxml.jackson.databind.ObjectMapper;
66
import com.fasterxml.jackson.databind.SerializationFeature;
7+
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
78

89
import java.io.IOException;
910

@@ -19,6 +20,7 @@ public final String toJson() throws IOException {
1920
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
2021
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
2122
mapper.disable(MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS);
23+
mapper.setDateFormat(new ISO8601DateFormat());
2224
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
2325

2426
return mapper.writeValueAsString(this);

src/main/java/com/maxmind/minfraud/WebServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.fasterxml.jackson.databind.InjectableValues.Std;
77
import com.fasterxml.jackson.databind.MapperFeature;
88
import com.fasterxml.jackson.databind.ObjectMapper;
9+
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
910
import com.maxmind.minfraud.exception.*;
1011
import com.maxmind.minfraud.request.Transaction;
1112
import com.maxmind.minfraud.response.FactorsResponse;
@@ -61,6 +62,7 @@ private WebServiceClient(WebServiceClient.Builder builder) {
6162
mapper = new ObjectMapper();
6263
mapper.disable(MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS);
6364
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
65+
mapper.setDateFormat(new ISO8601DateFormat());
6466

6567
RequestConfig.Builder configBuilder = RequestConfig.custom()
6668
.setConnectTimeout(builder.connectTimeout)

src/test/resources/test-data/full-request.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"event": {
33
"transaction_id": "txn3134133",
44
"shop_id": "s2123",
5-
"time": "2012-04-12T23:20:50.052+0000",
5+
"time": "2012-04-12T23:20:50Z",
66
"type": "purchase"
77
},
88
"account": {

0 commit comments

Comments
 (0)