Public/Messages/Get-DSSecureMessages.ps1

function Get-DSSecureMessages{
    <#
        .SYNOPSIS
        Fetch all secure messages
        .DESCRIPTION
        Fetch all secure messages for the currently authenticated user,
        .EXAMPLE
        > Get-DSSecureMessages
 
        .NOTES
        It fetch messages for the user you logged in with (New-DSSession). For other users, you need to re-authenticate and type the command again.
    #>

        [CmdletBinding()]
        param(            
        )
        
        BEGIN {
            Write-Verbose '[Get-DSSecureMessage] Beginning...'
    
            $URI = "$Script:DSBaseURI/api/secure-messages"

            if ([string]::IsNullOrWhiteSpace($Global:DSSessionToken))
            {
                throw "Session does not seem authenticated, call New-DSSession."
            }
        }
    
        PROCESS {
            try
            {       
                $params = @{
                    Uri = $URI
                    Method = 'GET'
                    LegacyResponse = $true
                }

                Write-Verbose "[Get-DSSecureMessage] about to call with $params.Uri"

                [ServerResponse] $response = Invoke-DS @params

                if ($response.isSuccess)
                { 
                    Write-Verbose "[Get-DSSecureMessage] was successfull"
                }

                foreach ($item in $response.Body.data) {
                    $decryptedinfo = Decrypt-String $Global:DSSessionKey $item.JsonData
                    $item.JsonData = $decryptedinfo
                }
                
                If ([System.Management.Automation.ActionPreference]::SilentlyContinue -ne $DebugPreference) {
                        Write-Debug "[Response.Body] $($response.Body)"
                }

                return $response
            }
            catch
            {
                $exc = $_.Exception
                If ([System.Management.Automation.ActionPreference]::SilentlyContinue -ne $DebugPreference) {
                        Write-Debug "[Exception] $exc"
                } 
            }
        }
    
        END {
           If ($?) {
              Write-Verbose '[Get-DSSecureMessage] Completed Successfully.'
            } else {
                Write-Verbose '[Get-DSSecureMessage] ended with errors...'
            }
        }
    }