Public/Send-LimeInvite.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
39
40
Function Send-LimeInvite {
    <#
    .SYNOPSIS
        Triggers LimeSurvey to email participants of specific LimeSurvey
    .DESCRIPTION
        Triggers LimeSurvey to email participants of specific LimeSurvey inviting them to complete survey
    .PARAMETER SurveyId
        Survey ID to query
    .PARAMETER Session
        LimeSurvey session to use (Created by New-LimeSession)
    .PARAMETER BaseUri
        Base URI for LimeSurvey
    .PARAMETER Raw
        If specified, do not parse output
    .EXAMPLE
        Send-LimeInvite -SurveyId 123456 -Session $Session -BaseUri https://limehost.com/index.php?r=admin/remotecontrol
    .FUNCTIONALITY
        LimeSurvey
    #>

    [cmdletbinding()]
    Param(
        [parameter(Position = 1)]
        [int]$SurveyId,

        [Parameter( ValueFromPipeLine = $true,
            ValueFromPipelineByPropertyName = $true )]
        [ValidateNotNull()]
        [string]$Session,
        [ValidateNotNull()]
        [string]$BaseUri,
        [switch]$Raw
    )
    $RpcMethodBody = New-RPCMethod 'invite_participants' @($Session, $SurveyId)
    if ($Raw) {
        (Invoke-RestMethod -Uri $BaseUri -Method Post -Body $RpcMethodBody).Content
    }
    else {
        Invoke-RpcMethod -RpcServerUri $BaseUri -RequestBody $RpcMethodBody
    }
}