Skip to content

Commit

Permalink
Update to function Get-QlikSession (#70)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nillth authored and ahaydon committed Dec 6, 2018
1 parent dd27f87 commit 84662a8
Showing 1 changed file with 76 additions and 29 deletions.
105 changes: 76 additions & 29 deletions resources/session.ps1
Original file line number Diff line number Diff line change
@@ -1,31 +1,78 @@
function Get-QlikSession {
[CmdletBinding(DefaultParameterSetName="User")]
param (
[parameter(ParameterSetName="Id",Mandatory=$true,Position=0,ValueFromPipelinebyPropertyName=$true)]
[string]$id,
<#
.SYNOPSIS
Gets the current User Sessions on the specified Proxy
.DESCRIPTION
This returns a session object with the corresponding SessionId.
https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html
.PARAMETER id
This is to return the Session Object for a Specific Session ID
.PARAMETER userDirectory
The userDirecotry paramater is used as part of identitying the users sessions, must be used with userID
.PARAMETER userId
The userID paramater is used as part of identitying the users sessions, must be used with userDirecotry
.PARAMETER virtualProxyPrefix
Specifies the Virtual Proxy to get the sessions from
.EXAMPLE
PS C:\> Get-QlikSession
.EXAMPLE
PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1"
.EXAMPLE
PS C:\> Get-QlikSession -userDirectory Domain -userId Marc
.EXAMPLE
PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1" -userDirectory Domain -userId Marc
[parameter(ParameterSetName="User",Mandatory=$true,Position=0,ValueFromPipelinebyPropertyName=$true)]
[string]$userDirectory,
.NOTES
Additional information about the Session API can be found
https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html#19b1cf4a56294022A146C978a46f3a59
https://help.qlik.com/en-US/sense-developer/November2018/Subsystems/ProxyServiceAPI/Content/Sense_ProxyServiceAPI/ProxyServiceAPI-Session-Module-API-Session-Get.htm
[parameter(ParameterSetName="User",Mandatory=$true,Position=1,ValueFromPipelinebyPropertyName=$true)]
[string]$userId,

[alias("vp")]
[string]$virtualProxyPrefix,

[switch]$raw
)

PROCESS {
$proxy = Get-QlikProxy local
$prefix = "https://$($proxy.serverNodeConfiguration.hostName):$($proxy.settings.restListenPort)/qps"
if ($virtualProxyPrefix) { $prefix += "/$virtualProxyPrefix" }
if ($id) {
$path = "$prefix/session/$id"
} else {
$path = "$prefix/user/$userDirectory/$userId"
}
If( $raw ) { $rawOutput = $true }
return Invoke-QlikGet $path
}
}
#>
function Get-QlikSession
{
[CmdletBinding(DefaultParameterSetName = 'Default')]
param
(
[Parameter(ParameterSetName = 'Id',
Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
[string]$id,
[Parameter(ParameterSetName = 'User',
Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
[string]$userDirectory,
[Parameter(ParameterSetName = 'User',
Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 1)]
[string]$userId,
[Alias('vp')]
[string]$virtualProxyPrefix
)

PROCESS
{
$proxy = Get-QlikProxy local
$prefix = "https://$($proxy.serverNodeConfiguration.hostName):$($proxy.settings.restListenPort)/qps"
if ($PSBoundParameters.ContainsKey("virtualProxyPrefix")) { $prefix = "$($prefix)/$virtualProxyPrefix" }
switch ($PSCmdlet.ParameterSetName)
{
USER{ $path = "$prefix/user/$userDirectory/$userId" }
ID{ $path = "$prefix/session/$id" }
Default { $path = "$prefix/session" }
}
try
{
$response = Invoke-QlikGet $path
}
catch { $response = $null }
return $response
}
}

0 comments on commit 84662a8

Please sign in to comment.