Inceptum/src/main/java/io/gitlab/jfronny/inceptum/gson/OauthTokenResponseDeseriali...

37 lines
1.6 KiB
Java

package io.gitlab.jfronny.inceptum.gson;
import com.google.gson.*;
import io.gitlab.jfronny.inceptum.model.microsoft.OauthTokenResponse;
import java.lang.reflect.Type;
import java.util.Date;
public class OauthTokenResponseDeserializer implements JsonDeserializer<OauthTokenResponse> {
@Override
public OauthTokenResponse deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
OauthTokenResponse oauthTokenResponse = new OauthTokenResponse();
JsonObject rootObject = json.getAsJsonObject();
oauthTokenResponse.tokenType = rootObject.get("token_type").getAsString();
oauthTokenResponse.expiresIn = rootObject.get("expires_in").getAsInt();
oauthTokenResponse.scope = rootObject.get("scope").getAsString();
oauthTokenResponse.accessToken = rootObject.get("access_token").getAsString();
oauthTokenResponse.refreshToken = rootObject.get("refresh_token").getAsString();
oauthTokenResponse.userId = rootObject.get("user_id").getAsString();
if (rootObject.has("foci")) {
oauthTokenResponse.foci = rootObject.get("foci").getAsString();
}
if (rootObject.has("expires_at")) {
oauthTokenResponse.expiresAt = context.deserialize(rootObject.get("expires_at"), Date.class);
} else {
oauthTokenResponse.expiresAt = new Date();
oauthTokenResponse.expiresAt
.setTime(oauthTokenResponse.expiresAt.getTime() + (oauthTokenResponse.expiresIn * 1000));
}
return oauthTokenResponse;
}
}