Scripts/New-UDHotkeyAction.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function New-UDHotkeyAction {
    [CmdletBinding()]
    param (
        [Parameter(
            Mandatory = $true,
            ParameterSetName = "Endpoint")]
        [object]$endpoint,
        [Parameter(
            ParameterSetName = "Clientside",
            Mandatory = $true)]
        [string]$javascript,
        [Parameter()]
        [string]$Id = ([Guid]::NewGuid())
    )

    Begin {
        if ($PSCmdlet.ParameterSetName -eq "Endpoint") {
            if ($endpoint -is [scriptblock]) {
                $endpoint = New-UDEndpoint -Endpoint $endpoint -Id $Id
            }
            elseif ($endpoint -isnot [UniversalDashboard.Models.Endpoint]) {
                throw "Action must be a script block or UDEndpoint."
            }
        }
    }

    Process {
        $out = @{
            id = $Id
            type = $PSCmdlet.ParameterSetName
            javascript = $javascript
        }
    }
    
    End {
        return $out
    }
}