[AB-82] adding urban dictionary api with a command

adding Instant handling to GSON
This commit is contained in:
Sheldan
2021-03-29 01:13:46 +02:00
parent c2b413e4b9
commit 45c1df0d44
21 changed files with 292 additions and 6 deletions

View File

@@ -15,6 +15,7 @@ import org.springframework.context.annotation.Configuration;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -35,6 +36,7 @@ public class CoreConfig {
public Gson gson() {
return new GsonBuilder()
.registerTypeAdapter(OffsetDateTime.class, new OffsetDateTimeAdapter())
.registerTypeAdapter(Instant.class, new InstantTimeAdapter())
.setPrettyPrinting().create();
}

View File

@@ -0,0 +1,19 @@
package dev.sheldan.abstracto.core.config;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import java.lang.reflect.Type;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
public class InstantTimeAdapter implements JsonDeserializer<Instant> {
@Override
public Instant deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
TemporalAccessor ta = DateTimeFormatter.ISO_INSTANT.parse(jsonElement.getAsString());
return Instant.from(ta);
}
}

View File

@@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.config;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import java.lang.reflect.Type;
import java.time.Instant;
@@ -15,7 +14,7 @@ import java.time.temporal.TemporalAccessor;
public class OffsetDateTimeAdapter implements JsonDeserializer<OffsetDateTime> {
@Override
public OffsetDateTime deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
public OffsetDateTime deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
TemporalAccessor ta = DateTimeFormatter.ISO_INSTANT.parse(jsonElement.getAsString());
Instant i = Instant.from(ta);
return OffsetDateTime.ofInstant(i, ZoneId.systemDefault());