Skip to content

Commit d3c96cd

Browse files
committed
refactor: adopt java time types for dates
1 parent 41f5a68 commit d3c96cd

25 files changed

Lines changed: 184 additions & 105 deletions

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<version>${jackson.version}</version>
3232
</dependency>
3333

34+
<dependency>
35+
<groupId>com.fasterxml.jackson.datatype</groupId>
36+
<artifactId>jackson-datatype-jsr310</artifactId>
37+
<version>${jackson.version}</version>
38+
</dependency>
39+
3440
<dependency>
3541
<groupId>org.junit.jupiter</groupId>
3642
<artifactId>junit-jupiter</artifactId>

src/main/java/io/facturapi/http/FacturapiConfig.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package io.facturapi.http;
22

3-
import com.fasterxml.jackson.databind.ObjectMapper;
43
import com.fasterxml.jackson.databind.DeserializationFeature;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.fasterxml.jackson.databind.SerializationFeature;
6+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
57
import io.facturapi.ApiVersion;
68
import io.facturapi.constants.FacturapiConstants;
79
import java.net.http.HttpClient;
@@ -105,7 +107,9 @@ public FacturapiConfig build() {
105107
: this.httpClient;
106108

107109
ObjectMapper resolvedMapper = new ObjectMapper()
108-
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
110+
.registerModule(new JavaTimeModule())
111+
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
112+
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
109113

110114
this.baseUrl = resolvedBaseUrl;
111115
this.httpClient = resolvedClient;

src/main/java/io/facturapi/models/ApiEvent.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
package io.facturapi.models;
22

3+
import java.time.Instant;
4+
35
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
46
import com.fasterxml.jackson.annotation.JsonProperty;
57

68
@JsonIgnoreProperties(ignoreUnknown = true)
79
public class ApiEvent {
810
@JsonProperty("created_at")
9-
private String createdAt;
11+
private Instant createdAt;
1012
private String organization;
1113
private Boolean livemode;
1214
private String type;
1315
private ApiEventData data;
1416

15-
public String getCreatedAt() { return createdAt; }
16-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
17+
public Instant getCreatedAt() { return createdAt; }
18+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
1719
public String getOrganization() { return organization; }
1820
public void setOrganization(String organization) { this.organization = organization; }
1921
public Boolean getLivemode() { return livemode; }

src/main/java/io/facturapi/models/ApiKey.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,24 @@
33
import com.fasterxml.jackson.annotation.JsonAlias;
44
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
55
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import java.time.Instant;
67

78
@JsonIgnoreProperties(ignoreUnknown = true)
89
public class ApiKey {
910
private String id;
1011
@JsonProperty("first_12")
1112
private String first12;
1213
@JsonProperty("created_at")
13-
private String createdAt;
14+
private Instant createdAt;
1415
@JsonAlias({"key", "api_key", "token"})
1516
private String key;
1617

1718
public String getId() { return id; }
1819
public void setId(String id) { this.id = id; }
1920
public String getFirst12() { return first12; }
2021
public void setFirst12(String first12) { this.first12 = first12; }
21-
public String getCreatedAt() { return createdAt; }
22-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
22+
public Instant getCreatedAt() { return createdAt; }
23+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
2324
public String getKey() { return key; }
2425
public void setKey(String key) { this.key = key; }
2526
}

src/main/java/io/facturapi/models/Certificate.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import java.time.Instant;
56

67
@JsonIgnoreProperties(ignoreUnknown = true)
78
public class Certificate {
89
@JsonProperty("has_certificate")
910
private Boolean hasCertificate;
1011
@JsonProperty("updated_at")
11-
private String updatedAt;
12+
private Instant updatedAt;
1213
@JsonProperty("expires_at")
13-
private String expiresAt;
14+
private Instant expiresAt;
1415
@JsonProperty("serial_number")
1516
private String serialNumber;
1617

1718
public Boolean getHasCertificate() { return hasCertificate; }
1819
public void setHasCertificate(Boolean hasCertificate) { this.hasCertificate = hasCertificate; }
19-
public String getUpdatedAt() { return updatedAt; }
20-
public void setUpdatedAt(String updatedAt) { this.updatedAt = updatedAt; }
21-
public String getExpiresAt() { return expiresAt; }
22-
public void setExpiresAt(String expiresAt) { this.expiresAt = expiresAt; }
20+
public Instant getUpdatedAt() { return updatedAt; }
21+
public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; }
22+
public Instant getExpiresAt() { return expiresAt; }
23+
public void setExpiresAt(Instant expiresAt) { this.expiresAt = expiresAt; }
2324
public String getSerialNumber() { return serialNumber; }
2425
public void setSerialNumber(String serialNumber) { this.serialNumber = serialNumber; }
2526
}

src/main/java/io/facturapi/models/Customer.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import java.time.Instant;
56

67
@JsonIgnoreProperties(ignoreUnknown = true)
78
public class Customer {
89
private String id;
910
private String organization;
1011
private Boolean livemode;
1112
@JsonProperty("created_at")
12-
private String createdAt;
13+
private Instant createdAt;
1314
@JsonProperty("tax_id")
1415
private String taxId;
1516
@JsonProperty("tax_system")
@@ -25,20 +26,20 @@ public class Customer {
2526
@JsonProperty("default_invoice_use")
2627
private String defaultInvoiceUse;
2728
@JsonProperty("sat_validated_at")
28-
private String satValidatedAt;
29+
private Instant satValidatedAt;
2930
@JsonProperty("edit_link")
3031
private String editLink;
3132
@JsonProperty("edit_link_expires_at")
32-
private String editLinkExpiresAt;
33+
private Instant editLinkExpiresAt;
3334

3435
public String getId() { return id; }
3536
public void setId(String id) { this.id = id; }
3637
public String getOrganization() { return organization; }
3738
public void setOrganization(String organization) { this.organization = organization; }
3839
public Boolean getLivemode() { return livemode; }
3940
public void setLivemode(Boolean livemode) { this.livemode = livemode; }
40-
public String getCreatedAt() { return createdAt; }
41-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
41+
public Instant getCreatedAt() { return createdAt; }
42+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
4243
public String getTaxId() { return taxId; }
4344
public void setTaxId(String taxId) { this.taxId = taxId; }
4445
public String getTaxSystem() { return taxSystem; }
@@ -57,10 +58,10 @@ public class Customer {
5758
public void setExternalId(String externalId) { this.externalId = externalId; }
5859
public String getDefaultInvoiceUse() { return defaultInvoiceUse; }
5960
public void setDefaultInvoiceUse(String defaultInvoiceUse) { this.defaultInvoiceUse = defaultInvoiceUse; }
60-
public String getSatValidatedAt() { return satValidatedAt; }
61-
public void setSatValidatedAt(String satValidatedAt) { this.satValidatedAt = satValidatedAt; }
61+
public Instant getSatValidatedAt() { return satValidatedAt; }
62+
public void setSatValidatedAt(Instant satValidatedAt) { this.satValidatedAt = satValidatedAt; }
6263
public String getEditLink() { return editLink; }
6364
public void setEditLink(String editLink) { this.editLink = editLink; }
64-
public String getEditLinkExpiresAt() { return editLinkExpiresAt; }
65-
public void setEditLinkExpiresAt(String editLinkExpiresAt) { this.editLinkExpiresAt = editLinkExpiresAt; }
65+
public Instant getEditLinkExpiresAt() { return editLinkExpiresAt; }
66+
public void setEditLinkExpiresAt(Instant editLinkExpiresAt) { this.editLinkExpiresAt = editLinkExpiresAt; }
6667
}

src/main/java/io/facturapi/models/Invoice.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import io.facturapi.models.complements.InvoiceComplement;
6+
import java.time.Instant;
57
import java.util.ArrayList;
68
import java.util.List;
7-
import io.facturapi.models.complements.InvoiceComplement;
89

910
@JsonIgnoreProperties(ignoreUnknown = true)
1011
public class Invoice {
1112
private String id;
1213
private String organization;
1314
private Boolean livemode;
1415
@JsonProperty("created_at")
15-
private String createdAt;
16-
private String date;
16+
private Instant createdAt;
17+
private Instant date;
1718
@JsonProperty("issuer_type")
1819
private String issuerType;
1920
private String type;
@@ -75,10 +76,10 @@ public class Invoice {
7576
public void setOrganization(String organization) { this.organization = organization; }
7677
public Boolean getLivemode() { return livemode; }
7778
public void setLivemode(Boolean livemode) { this.livemode = livemode; }
78-
public String getCreatedAt() { return createdAt; }
79-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
80-
public String getDate() { return date; }
81-
public void setDate(String date) { this.date = date; }
79+
public Instant getCreatedAt() { return createdAt; }
80+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
81+
public Instant getDate() { return date; }
82+
public void setDate(Instant date) { this.date = date; }
8283
public String getIssuerType() { return issuerType; }
8384
public void setIssuerType(String issuerType) { this.issuerType = issuerType; }
8485
public String getType() { return type; }

src/main/java/io/facturapi/models/InvoiceCancellation.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import java.time.Instant;
56

67
@JsonIgnoreProperties(ignoreUnknown = true)
78
public class InvoiceCancellation {
89
@JsonProperty("requested_at")
9-
private String requestedAt;
10+
private Instant requestedAt;
1011
private String status;
1112
@JsonProperty("last_checked")
12-
private String lastChecked;
13+
private Instant lastChecked;
1314
private String motive;
1415
@JsonProperty("substitution_uuid")
1516
private String substitutionUuid;
1617

17-
public String getRequestedAt() { return requestedAt; }
18-
public void setRequestedAt(String requestedAt) { this.requestedAt = requestedAt; }
18+
public Instant getRequestedAt() { return requestedAt; }
19+
public void setRequestedAt(Instant requestedAt) { this.requestedAt = requestedAt; }
1920
public String getStatus() { return status; }
2021
public void setStatus(String status) { this.status = status; }
21-
public String getLastChecked() { return lastChecked; }
22-
public void setLastChecked(String lastChecked) { this.lastChecked = lastChecked; }
22+
public Instant getLastChecked() { return lastChecked; }
23+
public void setLastChecked(Instant lastChecked) { this.lastChecked = lastChecked; }
2324
public String getMotive() { return motive; }
2425
public void setMotive(String motive) { this.motive = motive; }
2526
public String getSubstitutionUuid() { return substitutionUuid; }

src/main/java/io/facturapi/models/Organization.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import java.time.Instant;
56
import java.util.ArrayList;
67
import java.util.List;
78

89
@JsonIgnoreProperties(ignoreUnknown = true)
910
public class Organization {
1011
private String id;
1112
@JsonProperty("created_at")
12-
private String createdAt;
13+
private Instant createdAt;
1314
private String plan;
1415
@JsonProperty("add_ons")
1516
private List<String> addOns = new ArrayList<>();
@@ -35,8 +36,8 @@ public class Organization {
3536

3637
public String getId() { return id; }
3738
public void setId(String id) { this.id = id; }
38-
public String getCreatedAt() { return createdAt; }
39-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
39+
public Instant getCreatedAt() { return createdAt; }
40+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
4041
public String getPlan() { return plan; }
4142
public void setPlan(String plan) { this.plan = plan; }
4243
public List<String> getAddOns() { return addOns; }

src/main/java/io/facturapi/models/OrganizationInvite.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import java.time.Instant;
56
import java.util.ArrayList;
67
import java.util.List;
78

89
@JsonIgnoreProperties(ignoreUnknown = true)
910
public class OrganizationInvite {
1011
private String id;
1112
@JsonProperty("created_at")
12-
private String createdAt;
13+
private Instant createdAt;
1314
private String email;
1415
@JsonProperty("organization_name")
1516
private String organizationName;
@@ -18,13 +19,13 @@ public class OrganizationInvite {
1819
private String roleName;
1920
private List<String> roles = new ArrayList<>();
2021
@JsonProperty("expires_at")
21-
private String expiresAt;
22+
private Instant expiresAt;
2223
private String status;
2324

2425
public String getId() { return id; }
2526
public void setId(String id) { this.id = id; }
26-
public String getCreatedAt() { return createdAt; }
27-
public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }
27+
public Instant getCreatedAt() { return createdAt; }
28+
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
2829
public String getEmail() { return email; }
2930
public void setEmail(String email) { this.email = email; }
3031
public String getOrganizationName() { return organizationName; }
@@ -35,8 +36,8 @@ public class OrganizationInvite {
3536
public void setRoleName(String roleName) { this.roleName = roleName; }
3637
public List<String> getRoles() { return roles; }
3738
public void setRoles(List<String> roles) { this.roles = roles; }
38-
public String getExpiresAt() { return expiresAt; }
39-
public void setExpiresAt(String expiresAt) { this.expiresAt = expiresAt; }
39+
public Instant getExpiresAt() { return expiresAt; }
40+
public void setExpiresAt(Instant expiresAt) { this.expiresAt = expiresAt; }
4041
public String getStatus() { return status; }
4142
public void setStatus(String status) { this.status = status; }
4243
}

0 commit comments

Comments
 (0)