37 lines
1.6 KiB
Java
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;
|
||
|
}
|
||
|
}
|