@@ -11,47 +11,51 @@ Function Invoke-AddGuest {
1111 param ($Request , $TriggerMetadata )
1212
1313 $APIName = $Request.Params.CIPPEndpoint
14- Write-LogMessage - headers $Request.Headers - API $APINAME - message ' Accessed this API' - Sev ' Debug'
14+ $Headers = $Request.Headers
15+ Write-LogMessage - headers $Headers - API $APIName - message ' Accessed this API' - Sev ' Debug'
16+
17+ $TenantFilter = $Request.Body.tenantFilter
1518
1619 $Results = [System.Collections.ArrayList ]@ ()
17- $userobj = $Request.body
18- # Write to the Azure Functions log stream.
19- Write-Host ' PowerShell HTTP trigger function processed a request.'
20+ $UserObject = $Request.Body
2021 try {
21- if ($userobj .RedirectURL ) {
22+ if ($UserObject .RedirectURL ) {
2223 $BodyToship = [pscustomobject ] @ {
23- ' InvitedUserDisplayName' = $userobj .Displayname
24- ' InvitedUserEmailAddress' = $ ($userobj .mail )
25- ' inviteRedirectUrl' = $ ($userobj .RedirectURL )
26- ' sendInvitationMessage' = [boolean ] $userobj .SendInvite
24+ ' InvitedUserDisplayName' = $UserObject .DisplayName
25+ ' InvitedUserEmailAddress' = $ ($UserObject .mail )
26+ ' inviteRedirectUrl' = $ ($UserObject .RedirectURL )
27+ ' sendInvitationMessage' = [bool ] $UserObject .SendInvite
2728 }
2829 } else {
2930 $BodyToship = [pscustomobject ] @ {
30- ' InvitedUserDisplayName' = $userobj .Displayname
31- ' InvitedUserEmailAddress' = $ ($userobj .mail )
32- ' sendInvitationMessage' = [boolean ] $userobj .SendInvite
31+ ' InvitedUserDisplayName' = $UserObject .DisplayName
32+ ' InvitedUserEmailAddress' = $ ($UserObject .mail )
33+ ' sendInvitationMessage' = [bool ] $UserObject .SendInvite
3334 ' inviteRedirectUrl' = ' https://myapps.microsoft.com'
3435 }
3536 }
3637 $bodyToShip = ConvertTo-Json - Depth 10 - InputObject $BodyToship - Compress
37- $GraphRequest = New-GraphPostRequest - uri ' https://graph.microsoft.com/beta/invitations' - tenantid $Userobj .tenantFilter - type POST - body $BodyToship - verbose
38- if ($Userobj .sendInvite -eq ' true' ) {
39- $results .add (' Invited Guest. Invite Email sent' )
40- Write-LogMessage - headers $Request . Headers - API $APINAME - tenant $ ($userobj .tenantFilter ) - message " Invited Guest $ ( $userobj .displayname ) with Email Invite " - Sev ' Info'
38+ $null = New-GraphPostRequest - uri ' https://graph.microsoft.com/beta/invitations' - tenantid $TenantFilter - type POST - body $BodyToship - verbose
39+ if ($UserObject .SendInvite -eq $ true ) {
40+ $Results .Add (' Invited Guest. Invite Email sent' )
41+ Write-LogMessage - headers $Headers - API $APIName - tenant $ ($TenantFilter ) - message " Invited Guest $ ( $UserObject .DisplayName ) with Email Invite " - Sev ' Info'
4142 } else {
42- $results .add (' Invited Guest. No Invite Email was sent' )
43- Write-LogMessage - headers $Request . Headers - API $APINAME - tenant $ ($userobj .tenantFilter ) - message " Invited Guest $ ( $userobj .displayname ) with no Email Invite " - Sev ' Info'
43+ $Results .Add (' Invited Guest. No Invite Email was sent' )
44+ Write-LogMessage - headers $Headers - API $APIName - tenant $ ($TenantFilter ) - message " Invited Guest $ ( $UserObject .DisplayName ) with no Email Invite " - Sev ' Info'
4445 }
46+ $StatusCode = [HttpStatusCode ]::OK
4547 } catch {
46- Write-LogMessage - headers $Request.Headers - API $APINAME - tenant $ ($userobj.tenantFilter ) - message " Guest Invite API failed. $ ( $_.Exception.Message ) " - Sev ' Error'
47- $body = $results.add (" Failed to Invite Guest. $ ( $_.Exception.Message ) " )
48+ $ErrorMessage = Get-CippException - Exception $_
49+ $Result = " Failed to Invite Guest. $ ( $ErrorMessage.NormalizedError ) "
50+ Write-LogMessage - headers $Headers - API $APIName - tenant $ ($TenantFilter ) - message $Result - Sev ' Error' - LogData $ErrorMessage
51+ $Results.Add ($Result )
52+ $StatusCode = [HttpStatusCode ]::BadRequest
4853 }
4954
50- $body = @ {' Results' = @ ($results ) }
5155 # Associate values to output bindings by calling 'Push-OutputBinding'.
5256 Push-OutputBinding - Name Response - Value ([HttpResponseContext ]@ {
53- StatusCode = [ HttpStatusCode ]::OK
54- Body = $Body
57+ StatusCode = $StatusCode
58+ Body = @ { Results = @ ( $Results ) }
5559 })
5660
5761}
0 commit comments