From 3d0f0b752e6e833748ba01ff77960317e9b0d195 Mon Sep 17 00:00:00 2001 From: James Karanja Maina Date: Fri, 11 Nov 2022 12:58:43 +0300 Subject: [PATCH] Update UserInfo.kt The preferred_username, updated_at, given_name and family_name fields captured as null on the userinfo object. This is due to a failure on gson.fromJson conversion for fields with underscores. Proposing adding annotation for resolving this issue. Best Regards James --- .../com/onelogin/oidc/userInfo/UserInfo.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt b/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt index 787dd9d..08e6c7c 100644 --- a/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt +++ b/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt @@ -1,12 +1,21 @@ package com.onelogin.oidc.userInfo +import com.google.gson.Gson +import com.google.gson.annotations.SerializedName + data class UserInfo( val sub: String, val email: String, - val preferredUsername: String?, + @SerializedName("preferred_username") val preferredUsername: String?, val name: String?, - val updatedAt: String?, - val givenName: String?, - val familyName: String?, + @SerializedName("updated_at") val updatedAt: String?, + @SerializedName("given_name") val givenName: String?, + @SerializedName("family_name") val familyName: String?, val groups: List? -) +) : JSONConvertable + +interface JSONConvertable { + fun toJSON(): String = Gson().toJson(this) +} + +inline fun String.toObject(): T = Gson().fromJson(this, T::class.java)