Skip to content

Commit

Permalink
GitHub:9479 ([Google] User information: fixes)
Browse files Browse the repository at this point in the history
  • Loading branch information
yannicktrinh committed Oct 3, 2024
1 parent 76535ea commit 7a0a751
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 42 deletions.
81 changes: 44 additions & 37 deletions Project/Sources/Classes/GoogleUser.4dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Class constructor($inProvider : cs.OAuth2Provider)

Super($inProvider; "https://people.googleapis.com/v1/")

This._internals.defaultPersonFields:="names,emailAddresses"
This._internals.defaultSources:="DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"
This._internals.defaultPersonFields:=["names"; "emailAddresses"]
This._internals.defaultSources:=["DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"]


// ----------------------------------------------------
Expand All @@ -19,23 +19,24 @@ Function _get($inResourceName : Text; $inPersonFields : Variant) : Object

var $URL : Text:=Super._getURL()
var $resourceName : Text:=Length(String($inResourceName))>0 ? $inResourceName : ""
var $personFields : Text:=This._internals.defaultPersonFields
var $personFields : Text

If (Position("people/"; $resourceName)=0)
$resourceName:="people/"+$resourceName
End if

Case of
: (Type($inPersonFields)=Is collection)
$personFields:=$inPersonFields.join(",")
: (Length(String($inPersonFields))>0)
: ((Type($inPersonFields)=Is collection) && ($inPersonFields.length>0))
$personFields:=$inPersonFields.join(","; ck ignore null or empty)
: ((Value type($inPersonFields)=Is text) && (Length(String($inPersonFields))>0))
$personFields:=$inPersonFields
Else
$personFields:=This._internals.defaultPersonFields.join(","; ck ignore null or empty)
End case

$URL+=$resourceName+"?personFields="+$personFields

var $headers : Object:={}
$headers["Content-Type"]:="application/json"
var $headers : Object:={Accept: "application/json"}
var $response : Object:=Super._sendRequestAndWaitResponse("GET"; $URL; $headers)

return $response
Expand All @@ -46,44 +47,51 @@ Function _get($inResourceName : Text; $inPersonFields : Variant) : Object

Function _getURLParamsFromObject($inParameters : Object) : Text

var $urlParams : Text:=""
var $urlParams; $personFields; $sources : Text
var $delimiter : Text:="?"
var $personFields : Text:=This._internals.defaultPersonFields
var $sources : Text:=This._internals.defaultSources

If (Not(Value type($inParameters.select)=Is undefined))
Case of
: (Type($inParameters.select)=Is collection)
$personFields:=$inParameters.select.join(",")
: (Length(String($inParameters.select))>0)
$personFields:=$inParameters.select
End case
End if

Case of
: (OB Is defined($inParameters; "select") && (Type($inParameters.select)=Is collection) && ($inParameters.select.length>0))
$personFields:=$inParameters.select.join(","; ck ignore null or empty)
: (OB Is defined($inParameters; "select") && (Value type($inParameters.sources)=Is text) && (Length(String($inParameters.select))>0))
$personFields:=$inParameters.select
Else
$personFields:=This._internals.defaultPersonFields.join(","; ck ignore null or empty)
End case
$urlParams+=$delimiter+"readMask="+$personFields
$delimiter:="&"

If (Length(String($inParameters.sources))>0)
$sources:=$inParameters.sources
End if
Case of
: (OB Is defined($inParameters; "sources") && (Value type($inParameters.sources)=Is collection) && ($inParameters.sources>0))
$sources:=This._internals.defaultSources.join("&sources="; ck ignore null or empty)
: (OB Is defined($inParameters; "sources") && (Value type($inParameters.sources)=Is text) && (Length(String($inParameters.sources))>0))
$sources:=$inParameters.sources
Else
$sources:=This._internals.defaultSources.join("&sources="; ck ignore null or empty)
End case
$urlParams+=($delimiter+"sources="+$sources)

If (Length(String($inParameters.mergedSources))>0)
$urlParams+=($delimiter+"mergeSources="+$sources)
End if
If (Num($inParameters.top)>0)
Case of
: (OB Is defined($inParameters; "mergedSources") && (Value type($inParameters.mergedSources)=Is collection) && ($inParameters.mergedSources>0))
$urlParams+=($delimiter+"mergeSources="+This._internals.defaultSources.join("&mergeSources="; ck ignore null or empty))
: (OB Is defined($inParameters; "mergedSources") && (Value type($inParameters.mergedSources)=Is text) && (Length(String($inParameters.mergedSources))>0))
$urlParams+=($delimiter+"mergeSources="+$inParameters.mergedSources)
End case

If (OB Is defined($inParameters; "top") && (Num($inParameters.top)>0))
$urlParams+=($delimiter+"pageSize="+String($inParameters.top))
End if

If (Bool($inParameters.requestSyncToken))
$urlParams+=($delimiter+"requestSyncToken="+($inParameters.requestSyncToken ? "true" : "false"))
If (OB Is defined($inParameters; "requestSyncToken") && (Value type($inParameters.requestSyncToken)=Is boolean))
$urlParams+=($delimiter+"requestSyncToken="+(Bool($inParameters.requestSyncToken) ? "true" : "false"))
End if

If (Length(String($inParameters.pageToken))>0)
$urlParams+=($delimiter+"pageToken="+$inParameters.pageToken)
If (OB Is defined($inParameters; "pageToken") && (Value type($inParameters.pageToken)=Is text) && (Length(String($inParameters.pageToken))>0))
$urlParams+=($delimiter+"pageToken="+String($inParameters.pageToken))
End if

If (Length(String($inParameters.syncToken))>0)
$urlParams+=($delimiter+"syncToken="+$inParameters.syncToken)
If (OB Is defined($inParameters; "syncToken") && (Value type($inParameters.syncToken)=Is text) && (Length(String($inParameters.syncToken))>0))
$urlParams+=($delimiter+"syncToken="+String($inParameters.syncToken))
End if

return $urlParams
Expand Down Expand Up @@ -114,8 +122,7 @@ Function list($inParameters : Object) : Object

Super._clearErrorStack()

var $parameters : Object:=($inParameters#Null) ? $inParameters : {}
var $URL : Text:=Super._getURL()+"people:listDirectoryPeople"
var $urlParams : Text:=This._getURLParamsFromObject($parameters)
var $URL : Text:=Super._getURL()+"people:listDirectoryPeople"+This._getURLParamsFromObject(inParametersparameters)
var $headers : Object:={Accept: "application/json"}

return cs.GoogleUserList.new(This._getOAuth2Provider(); $URL+$urlParams)
return cs.GoogleUserList.new(This._getOAuth2Provider(); $URL; $headers)
5 changes: 2 additions & 3 deletions Project/Sources/Classes/GoogleUserList.4dm
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
Class extends _GoogleBaseList

Class constructor($inProvider : cs.OAuth2Provider; $inURL : Text)
Class constructor($inProvider : cs.OAuth2Provider; $inURL : Text; $inHeaders : Object)

Super($inProvider; $inURL; "users")
This._internals._URL:=$inURL
Super($inProvider; $inURL; "people"; $inHeaders)


// Mark: - [Public]
Expand Down
5 changes: 3 additions & 2 deletions Project/Sources/Classes/_GoogleBaseList.4dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ property statusText : Text
property success : Boolean
property errors : Collection

Class constructor($inProvider : cs:C1710.OAuth2Provider; $inURL : Text; $inName : Text)
Class constructor($inProvider : cs:C1710.OAuth2Provider; $inURL : Text; $inName : Text; $inHeaders : Object)

Super:C1705($inProvider)

This:C1470._internals._URL:=$inURL
This:C1470._internals._headers:=$inHeaders
This:C1470._internals._attribute:=$inName
This:C1470._internals._nextPageToken:=""
This:C1470._internals._history:=[]
Expand All @@ -35,7 +36,7 @@ Function _getList($inPageToken : Text) : Boolean
$URL+=$sep+"pageToken="+$inPageToken
End if

var $response : Object:=Super:C1706._sendRequestAndWaitResponse("GET"; $URL)
var $response : Object:=Super:C1706._sendRequestAndWaitResponse("GET"; $URL; This:C1470._internals._headers)

This:C1470.isLastPage:=False:C215
This:C1470.statusText:=Super:C1706._getStatusLine()
Expand Down

0 comments on commit 7a0a751

Please sign in to comment.