diklabu_poll.psm1
<#
VERBEN: get .... set .... new .... delete . add.... remove ... enable disable list... NOMEN: poll pollquestion pollanswer pollresults #> <# .Synopsis Umfragen abfragen .DESCRIPTION Listet die Umfragen auf .EXAMPLE Get-Polls .EXAMPLE Get-Polls -uri http://localhost:8080/Diklabu/api/v1/ #> function Get-Polls { [CmdletBinding()] Param ( # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage") -Headers $headers Write-Verbose "Abfragen aller Umfragen" return $r; } catch { Write-Error "Get-Polls: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Fragen und Antwortsmöglichkeiten einer Umfrage abfragen .DESCRIPTION Liefert die Fragen und die Antworten zu einer Umfrage zurück .EXAMPLE Get-Poll -ID 1 .EXAMPLE Get-Poll -ID 2 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE 0,1 | Get-Poll #> function Get-Poll { [CmdletBinding()] Param ( # ID der umfrage [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [int]$ID, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/fragen/"+$ID) -Headers $headers Write-Verbose "Fragen und Antwortskalen der Umfrage mit der ID $ID" return $r; } catch { Write-Error "Get-Poll: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Auswertung einer Umfrage abfragenb .DESCRIPTION Liefert die Anzahl der Antworten für die jeweilige Klasse und der entsprechenden Umfrage .EXAMPLE Get-Pollresults -ID 1 -KNAME FISI14A .EXAMPLE Get-Pollresults -ID 2 -KNAME FISI14A -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE "FISI15A","FISI14%" | Get-Pollresults -ID 1 .EXAMPLE Get-Pollresults -ID 1 -KNAME 'FISI14A;FISI14B' Ermittelt die Ergebnisse der Klassen FISI14A und FISI14B .EXAMPLE Get-Pollresults -ID 1 -KNAME 'FISI14% Ermittelt die Ergebnisse aller FISI14 Klassen #> function Get-Pollresults { [CmdletBinding()] Param ( # ID der umfrage [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [int]$ID, # Name der Klasse [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=1)] [string]$KNAME, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $Encode = [System.Web.HttpUtility]::UrlEncode($KNAME) $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/auswertung/"+$ID+"/"+$Encode) -Headers $headers Write-Verbose "Auswertung der Umfrage mit der ID $ID für die Klasse $KNAME" foreach ($row in $r) { $out = echo "" | Select-Object -Property "frage" $out.frage=$row.frage; $n=1; $row.skalen=$row.skalen | Sort-Object -Property id foreach ($skala in $row.skalen) { $out | Add-Member -NotePropertyName $skala.name -NotePropertyValue $skala.anzahl #$out | Add-Member -NotePropertyName Value$n -NotePropertyValue $skala.anzahl $n++; } $out } } catch { Write-Error "Get-Pollresults: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Legt eine oder mehrere neue(n) Fragen an .DESCRIPTION Erzeugt eine oder mehrere neue(n) Fragen. Als Import kann z.B. eine CSV Datei genutzt werden mit folgenden Einträgen "FRAGE" .EXAMPLE New-PollQuestion -FRAGE "Wie fandest Du den Unterricht?" .EXAMPLE Import-Csv fragen.csv | New-PollQuestion #> function New-PollQuestion { [CmdletBinding()] Param ( # Frage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$frage, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $f=echo "" | Select-Object -Property "frage" $f.frage=$frage try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/frage") -Headers $headers -Body (ConvertTo-Json $f) } Write-Verbose "Erzeuge neue Frage ($frage)" return $r; } catch { Write-Error "New-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Ändert eine oder mehrere Fragen .DESCRIPTION Ändert eine oder mehrere Fragen. .EXAMPLE Set-PollQuestion -id 1 -FRAGE "Wie fandest Du den Unterricht?" #> function Set-PollQuestion { [CmdletBinding()] Param ( #ID der Frage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Frage [Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$FRAGE, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $f=echo "" | Select-Object -Property "id","frage" $f.frage=$FRAGE $f.id=$ID try { if (-not $whatif) { $r=Invoke-RestMethod -Method Put -Uri ($uri+"umfrage/admin/frage") -Headers $headers -Body (ConvertTo-Json $f) } Write-Verbose "Ändere die Frage mit der ID $ID auf ($FRAGE)" return $r; } catch { Write-Error "Set-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Löscht eine oder mehrere Fragen .DESCRIPTION Löscht eine oder mehrere Fragen. .EXAMPLE delete-PollQuestion -id 1 .EXAMPLE 1,2,3| delete-PollQuestion Löscht die Fragen mit der ID 1 und ID 2 und ID 3 #> function Delete-PollQuestion { [CmdletBinding()] Param ( #ID der Frage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Delete -Uri ($uri+"umfrage/admin/frage/"+$ID) -Headers $headers } Write-Verbose "Lösche die Frage mit der ID $ID" return $r; } catch { Write-Error "Delete-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Abfrage einer oder mehrere Fragen .DESCRIPTION Abfrage einer oder mehrere Fragen. .EXAMPLE Get-PollQuestion -id 1 .EXAMPLE 1,2,3| Get-PollQuestion #> function Get-PollQuestion { [CmdletBinding()] Param ( #ID der Frage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/frage/"+$ID) -Headers $headers Write-Verbose "Abfrage der Frage mit der ID $ID" return $r; } catch { Write-Error "Get-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Abfrage aller Fragen .DESCRIPTION Abfrage aller Fragen .EXAMPLE Get-PollQuestions #> function Get-PollQuestions { [CmdletBinding()] Param ( # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/frage") -Headers $headers Write-Verbose "Abfage aller Fragen" return $r; } catch { Write-Error "Get-PollQuestions: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Legt eine oder mehrere neue(n) Antworten an .DESCRIPTION Erzeugt eine oder mehrere neue(n) Antworten. Als Import kann z.B. eine CSV Datei genutzt werden mit folgenden Einträgen "ANTWORT" .EXAMPLE New-PollAnswer -ANTWORT "sehr gut!" .EXAMPLE Import-Csv antworten.csv | New-PollAnswer #> function New-PollAnswer { [CmdletBinding()] Param ( # Antwort [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$ANTWORT, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $a=echo "" | Select-Object -Property "name" $a.name=$ANTWORT try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/antwort") -Headers $headers -Body (ConvertTo-Json $a) } Write-Verbose "Erzeuge neue Antwortskale ($ANTWORT)" return $r; } catch { Write-Error "New-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Ändert eine oder mehrere Antworten .DESCRIPTION Ändert eine oder mehrere Antworten. .EXAMPLE Set-PollAnswer -id 1 -ANTWORT "Sehr gut!" #> function Set-PollAnswer { [CmdletBinding()] Param ( #ID der Antwort [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Antowrt [Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$ANTWORT, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $a=echo "" | Select-Object -Property "id","name" $a.name=$ANTWORT $a.id=$ID try { if (-not $whatif) { $r=Invoke-RestMethod -Method Put -Uri ($uri+"umfrage/admin/antwort") -Headers $headers -Body (ConvertTo-Json $a) } Write-Verbose "Ändere die Antwort mit der ID $ID auf ($ANTWORT)" return $r; } catch { Write-Error "Set-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Löscht eine oder mehrere Antworten .DESCRIPTION Löscht eine oder mehrere Antworten. .EXAMPLE delete-PollAnswer -id 1 .EXAMPLE 1,2,3| delete-PollAnswer Löscht die Antworten mit der ID 1 und ID 2 und ID 3 #> function Delete-PollAnswer { [CmdletBinding()] Param ( #ID der Antwort [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Delete -Uri ($uri+"umfrage/admin/antwort/"+$ID) -Headers $headers } Write-Verbose "Lösche die Antwortskale mit der ID $ID" return $r; } catch { Write-Error "Delete-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Abfrage einer oder mehrere Antworten .DESCRIPTION Abfrage einer oder mehrere Antworten. .EXAMPLE Get-PollAnswer -id 1 .EXAMPLE 1,2,3| Get-PollAnswer #> function Get-PollAnswer { [CmdletBinding()] Param ( #ID der Antwort [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/antwort/"+$ID) -Headers $headers Write-Verbose "Abfrage der Antwortskale mit der ID $ID : Ergebnis: $r" return $r; } catch { Write-Error "Get-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Abfrage aller Antworten .DESCRIPTION Abfrage aller Antworten .EXAMPLE Get-PollAnswers #> function Get-PollAnswers { [CmdletBinding()] Param ( # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/antwort") -Headers $headers Write-Verbose "Abfrage aller Antwortskalen" return $r; } catch { Write-Error "Get-PollAnswers: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Fügt eine Antwort einer Frage hinzu .DESCRIPTION Fügt eine Antwort einer Frage hinzu .EXAMPLE Add-PollAnswer -IDFRage 1 -IDAntwort 1 .EXAMPLE 1,2,3| Add-PollAnswer -IDAntwort 2 Fügt den Fagen mit der ID 1,2 und 3 die Antwort mit der ID 2 hinzu #> function Add-PollAnswer { [CmdletBinding()] Param ( #IDFrage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $IDFrage, #IDAntwort [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] $IDAntwort, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/add/"+$IDFrage+"/"+$IDAntwort) -Headers $headers } Write-Verbose "Füge der Frage mit der ID $IDFrage die Antwortskale mit der ID $IDAntwort hinzu!" return $r; } catch { Write-Error "Add-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Entfernt eine Antwort aus einer Frage .DESCRIPTION Entfernt eine Antwort aus einer Frage .EXAMPLE Remove-PollAnswer -IDFRage 1 -IDAntwort 1 .EXAMPLE 1,2,3| Remove-PollAnswer -IDAntwort 2 Entfernt aus den Fagen mit der ID 1,2 und 3 die Antwort mit der ID 2 #> function Remove-PollAnswer { [CmdletBinding()] Param ( #IDFrage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $IDFrage, #IDAntwort [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] $IDAntwort, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/remove/"+$IDFrage+"/"+$IDAntwort) -Headers $headers } Write-Verbose "Entferne die Antwortskale $IDAntwort aus der Frage mit der ID $IDFrage" return $r; } catch { Write-Error "Remove-PollAnswer: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Legt eine neue Umfrage an .DESCRIPTION Erzeugt eine neue Umfrage .EXAMPLE New-Poll -TITEL "Schülerbefragung 2018" .EXAMPLE New-Poll -TITEL "Privatebefragung 2018" -OWNER TU #> function New-Poll { [CmdletBinding()] Param ( # Titel [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$TITEL, [String]$OWNER, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $p=echo "" | Select-Object -Property "titel","owner" $p.titel=$TITEL if ($OWNER) { $p.owner=$OWNER; } try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin") -Headers $headers -Body (ConvertTo-Json $p) } Write-Verbose "Erzeuge einer neue Umfrage mit dem Titel ($TITEL), Besitzer ist $OWNER" return $r; } catch { Write-Error "New-Poll: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Ändert eine Umfrage .DESCRIPTION Ändert eine Umfrage .EXAMPLE Set-Poll -id 1 -TITEL "Schülerbefragung 2018/19" -OWNER TU #> function Set-Poll { [CmdletBinding()] Param ( #ID der Umfrage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, # Titel der Umfage [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$TITEL, # Aktive Umfage (1=ja) [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$ACTIVE, [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$OWNER, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $p=echo "" | Select-Object -Property "id" if ($TITEL) { $p | Add-Member -NotePropertyName "titel" -NotePropertyValue $TITEL } if ($OWNER) { $p | Add-Member -NotePropertyName "owner" -NotePropertyValue $OWNER } $p.id=$ID if ($ACTIVE) { $p | Add-Member -NotePropertyName "active" -NotePropertyValue $ACTIVE } try { if (-not $whatif) { $r=Invoke-RestMethod -Method Put -Uri ($uri+"umfrage/admin") -Headers $headers -Body (ConvertTo-Json $p) } Write-Verbose "Ändere die Umfrage mit der ID $ID : auf $p" return $r; } catch { Write-Error "Set-Poll: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Löscht eine Umfrage .DESCRIPTION Löscht eine Umfrage .EXAMPLE Delete-Poll -id 1 #> function Delete-Poll { [CmdletBinding()] Param ( #ID der Antwort [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $ID, [switch]$force=$false, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Delete -Uri ($uri+"umfrage/admin/"+$ID+"/"+$force) -Headers $headers } Write-Verbose "Lösche die Umfrage mit der ID $ID" return $r; } catch { Write-Error "Delete-Poll: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Fügt eine Frage eine Umfrage hinzu .DESCRIPTION Fügt eine Frage eine Umfrage hinzu .EXAMPLE Add-PollQuestion -IDUmfrage 1 -IDFrage 1 .EXAMPLE 1,2,3| Add-PollAnswer -IDUmfrage 2 Fügt den Fagen mit der ID 1,2 und 3 die Umfrage mit der ID 2 hinzu #> function Add-PollQuestion { [CmdletBinding()] Param ( #IDFrage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $IDFrage, #IDAntwort [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] $IDUmfrage, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/addUmfrage/"+$IDFrage+"/"+$IDUmfrage) -Headers $headers } Write-Verbose "Für die Frage mit der ID $IDFrage der Umfrage mit der ID $IDUmfrage hinzu!" return $r; } catch { Write-Error "Add-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Entfernt eine Frage aus einer Umfrage .DESCRIPTION Entfernt eine Frage aus einer Umfrage .EXAMPLE Remove-PollQuestion -IDFrage 1 -IDUmfrage 1 .EXAMPLE 1,2,3| Remove-PollQuestion -IDUmfrage 2 Entfernt die Fagen mit der ID 1,2 und 3 aus der Umfrage mit der ID 2 #> function Remove-PollQuestion { [CmdletBinding()] Param ( #IDFrage [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] $IDFrage, #IDUmfrage [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] $IDUmfrage, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/removeUmfrage/"+$IDFrage+"/"+$IDUmfrage) -Headers $headers } Write-Verbose "Entferne die Frage mit der ID $IDFrage aus der Umfrage mit der ID $IDUmfrage" return $r; } catch { Write-Error "Remove-PollQuestion: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Legt eine oder mehrere neue(n) Teilnehmer für einer Umfrage an .DESCRIPTION Erzeugt eine oder mehrere neue(n) Teilnehmer für eine Umfrage .EXAMPLE New-PollSubscriber -ID_UMFRAGE 1 -ID 2 -TYPE SCHUELER .EXAMPLE find-Course -KNAME "FISI14A" | Get-Coursemember | ForEach-Object {$_.id} | New-PollSubscriber -ID_UMFRAGE 1 -TYPE SCHÜLER Alle Schüler der FISI14A werden zur Umfrage 1 hinzugefügt #> function New-PollSubscriber { [CmdletBinding()] Param ( # Umfrage [Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)] [int]$ID_UMFRAGE, # ID-Subscriber [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] $id, # TYPE [Parameter(Mandatory=$true,Position=2,ValueFromPipelineByPropertyName=$true)] [ValidateSet('SCHÜLER','BETRIEB','LEHRER')] [String]$TYPE, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { if ($TYPE -eq "SCHÜLER") { $t=echo "" | Select-Object -Property "idUmfrage","idSchueler" $t.idUmfrage=$ID_UMFRAGE $t.idSchueler=$id Write-Verbose "Erzeuge neuen Schüler Teilnehmer mit ID $id an der Umfrage mit der ID $ID_UMFRAGE ($t)" } elseif ($TYPE -eq "BETRIEB") { $t=echo "" | Select-Object -Property "idUmfrage","idBetrieb" $t.idUmfrage=$ID_UMFRAGE $t.idBetrieb=$id Write-Verbose "Erzeuge neuen Betrieb Teilnehmer mit ID $id an der Umfrage mit der ID $ID_UMFRAGE ($t)" } elseif ($TYPE -eq "LEHRER") { $t=echo "" | Select-Object -Property "idUmfrage","idLehrer" $t.idUmfrage=$ID_UMFRAGE $t.idLehrer=$id Write-Verbose "Erzeuge neuen Lehrer Teilnehmer mit ID $id an der Umfrage mit der ID $ID_UMFRAGE ($t)" } try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"umfrage/admin/subscriber") -Headers $headers -Body (ConvertTo-Json $t) } return $r; } catch { Write-Error "New-PollSubscriber: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Fragt die Teilnehmer an einer Umfrage ab .DESCRIPTION Fragt die Teilnehmer an einer Umfrage ab .EXAMPLE Get-PollSubscribers -ID_UMFRAGE 1 #> function Get-PollSubscribers { [CmdletBinding()] Param ( # Umfrage [Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)] [String]$ID_UMFRAGE, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/subscriber/"+$ID_UMFRAGE) -Headers $headers Write-Verbose "Abfrage der Teilnehmer an der Umfrage mit der ID $ID_UMFRAGE" return $r; } catch { Write-Error "Get-PollSubscribers: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Löscht einen Teilnehmer einer Umfrage ab .DESCRIPTION Löscht einen Teilnehmer einer Umfrage ab .EXAMPLE Delete-PollSubscriber -KEY abcd .EXAMPLE Get-PollSubscribers -ID_UMFRAGE 1 | ForEach-Object {$_.key} | Delete-PollSubscriber Löscht alle Teilnehmer aus der Umfrage 1, die noch keine Antworten abgegeben haben #> function Delete-PollSubscriber { [CmdletBinding()] Param ( # key [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$KEY, [switch]$force=$false, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Delete -Uri ($uri+"umfrage/admin/subscriber/"+$Key+"/"+$force) -Headers $headers } Write-Verbose "Lösche Teilnehmer mit KEY ($Key)" return $r; } catch { Write-Error "Delete-PollSubscriber: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Schickt eine EMail an einen Teilnehmer der Umfrage .DESCRIPTION Schickt eine EMail an einen Teilnehmer der Umfrage .EXAMPLE Invite-PollSubscriber -KEY abcd .EXAMPLE "abcd","cdef" | Invite-PollSubscriber .EXAMPLE Import-Csv keys.csv | Invite-PollSubscriber #> function Invite-PollSubscriber { [CmdletBinding()] Param ( # KEY [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [String]$KEY, # Adresse des Diklabu Servers [String]$uri=$global:server, [switch]$whatif ) Begin { if (-not $global:auth_token) { Write-Error "Sie sind nicht am diklabu angemeldet, versuchen Sie login-diklabu" return; } $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { if (-not $whatif) { $r=Invoke-RestMethod -Method Get -Uri ($uri+"umfrage/admin/invite/"+$KEY) -Headers $headers } Write-Verbose "Lade Teilnehmer mit Key ($KEY) ein!" return $r; } catch { Write-Error "Invite-PollSubscriber: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } |