From 8d5cc31943fa733af8f208b46ec2964f41a4b68b Mon Sep 17 00:00:00 2001 From: Yannick Trinh Date: Mon, 16 Sep 2024 16:10:17 +0200 Subject: [PATCH] GitHub:9479 ([Google] User information: fixes) --- Project/Sources/Classes/GoogleUser.4dm | 13 +++++++------ Project/Sources/Classes/OAuth2Provider.4dm | 4 +++- Project/Sources/Classes/_GoogleAPI.4dm | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Project/Sources/Classes/GoogleUser.4dm b/Project/Sources/Classes/GoogleUser.4dm index f25c507..161d678 100644 --- a/Project/Sources/Classes/GoogleUser.4dm +++ b/Project/Sources/Classes/GoogleUser.4dm @@ -1,10 +1,11 @@ Class extends _GoogleAPI -property _internals : Object:={_defaultPersonFields: "names,emailAddresses,photos"} Class constructor($inProvider : cs.OAuth2Provider) + + Super($inProvider;"https://people.googleapis.com/v1/") - Super($inProvider) + This._internals._defaultPersonFields:="names,emailAddresses,photos" // ---------------------------------------------------- @@ -14,7 +15,7 @@ Class constructor($inProvider : cs.OAuth2Provider) Function _get($inResourceName : Text; $inPersonFields : Variant) : Object Super._clearErrorStack() - + var $URL : Text:=Super._getURL() var $resourceName : Text:=Length(String($inResourceName))>0 ? String($inResourceName) : "me" var $personFields : Text @@ -32,7 +33,7 @@ Function _get($inResourceName : Text; $inPersonFields : Variant) : Object var $headers : Object:={} $headers["Content-Type"]:="application/json" - var $response : Object:=Super._sendRequestAndWaitResponse("GET"; $inURL; $headers) + var $response : Object:=Super._sendRequestAndWaitResponse("GET"; $URL; $headers) return $response @@ -61,7 +62,7 @@ Function get($inResourceName : Text; $inPersonFields : Variant) : Object Function list($inParameter : Object) : Object Super._clearErrorStack() - + var $URL : Text:=Super._getURL() var $personFields : Text var $sources : Text @@ -96,5 +97,5 @@ Function list($inParameter : Object) : Object If (Type($inParameter.requestSyncToken)=Is boolean) $URL+="&requestSyncToken="+$inParameter.requestSyncToken ? "true" : "false" End if - + return cs.GoogleUserList.new(This._getOAuth2Provider(); $URL) diff --git a/Project/Sources/Classes/OAuth2Provider.4dm b/Project/Sources/Classes/OAuth2Provider.4dm index bfa6ff9..662c6c9 100644 --- a/Project/Sources/Classes/OAuth2Provider.4dm +++ b/Project/Sources/Classes/OAuth2Provider.4dm @@ -625,7 +625,9 @@ Function _checkPrerequisites($obj : Object) : Boolean : (Length(String($obj.clientId))=0) This._throwError(2; {attribute: "clientId"}) - : ((Length(String($obj.name))>0) && (Length(String($obj.scope))=0)) + : ((Length(String($obj.name))>0) && \ + ((Value type($obj.scope)=Is text) && (Length(String($obj.scope))=0)) || \ + ((Value type($obj.scope)=Is collection) && ($obj.scope.length=0))) This._throwError(2; {attribute: "scope"}) : (Length(String($obj.permission))=0) diff --git a/Project/Sources/Classes/_GoogleAPI.4dm b/Project/Sources/Classes/_GoogleAPI.4dm index c1915bf..d38dd61 100644 --- a/Project/Sources/Classes/_GoogleAPI.4dm +++ b/Project/Sources/Classes/_GoogleAPI.4dm @@ -1,10 +1,10 @@ Class extends _BaseAPI -Class constructor($inProvider : cs.OAuth2Provider) +Class constructor($inProvider : cs.OAuth2Provider; $inBaseURL : Text) Super($inProvider) - This._internals._URL:="https://gmail.googleapis.com/gmail/v1/" + This._internals._URL:=(Length(String($inBaseURL)) > 0) ? $inBaseURL : "https://gmail.googleapis.com/gmail/v1/" // ----------------------------------------------------