diklabu_schueler.psm1
<#
VERBEN: find ... findet einen oder mehrere Schüler nach Namen und Geburtsdatum. '%' ist WildCard get .... findet einen Schüler durch Angabe des PK (Schueler ID) set .... ändert Attribute eines Schülers durch angabe des PK new .... erzeugt ein neuen Schüler Eintrag delete . löscht einen Schüler NOMEN: pupil #> <# .Synopsis Informationen zu einem Schüler abfragen .DESCRIPTION Informationen zu einem Schüler abfragen. Die Schülerdaten können dabei aus einer CSV Datei kommen mit folgenden Einträge "GEBDAT","NNAME","VNAME" "1968-04-11","Tuttas","Jörg" .EXAMPLE Find-Pupil -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 .EXAMPLE Find-Pupil -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE Find-Pupil -VNAME % -NNAME % -GEBDAT 1968-04-11 .DESCRIPTION Findet alle Schüler, die an dem Tag Geburtstag haben .EXAMPLE Import-Csv schueler.csv | Find-Pupil #> function Find-Pupil { Param ( # Objekt des Schülers [Parameter(ValueFromPipeline=$true)] $schueler, # Vorname des Schülers [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [String]$VNAME, # Nachname des Schülers [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=1)] [String]$NNAME, # Geburtsdatum im SQL Format yyyy-mm-dd [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=2)] [String]$GEBDAT, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $schueler=echo "" | Select-Object -Property "GEBDAT","NNAME","VNAME" $schueler.GEBDAT=$GEBDAT $schueler.NNAME=$NNAME $schueler.VNAME=$VNAME try { $r=Invoke-RestMethod -Method Post -Uri ($uri+"schueler/info") -Headers $headers -Body (ConvertTo-Json $schueler) -ContentType "application/json; charset=iso-8859-1" return $r; } catch { Write-Host "Find-Pupil: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription -ForegroundColor red } } } <# .Synopsis Einen oder mehrere Schüler abfragen und dateilierte Informationen ausgeben .DESCRIPTION Fragt einen oder mehrere Schüler ab und gibt detailierte Informationen, wie Klassenzugehörigkeit Ausbilder und Ausbildungsbetrieb aus. .EXAMPLE Get-Pupil -id 1234 .EXAMPLE Get-Pupil -id 1234 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE 1234,5678 | Get-Pupil .EXAMPLE Find-Pupil -VNAME % -NNAME % -GEBDAT 1993-12-30 | Get-Pupil .DESCRIPTION Zeit Schülerdaten an der Schüler, die an dem Tag geburtstag habenb .EXAMPLE Find-Coursemember -KNAME FISI13A | Get-Pupil .DESCRIPTION Zeit Schülerdaten der Klasse Fisi13A an #> function Get-Pupil { Param ( # ID des Schülers [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [int]$id, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { $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+"schueler/"+$id) -Headers $headers -ContentType "application/json; charset=iso-8859-1" return $r; } catch { Write-Host "Get-Pupil: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription -ForegroundColor red } } } <# .Synopsis Einen oder mehrere Schüler hinzufügen .DESCRIPTION Fügt einen Schüler zur Tabelle Schueler hinzu. Die Daten können dabei auch aus einer CSV Datei stammen, die folgendes Aussehen hat "GEBDAT","NNAME","VNAME" "1968-04-11","Tuttas","Jörg" "1968-04-11","Tuttas","Joerg" "1968-04-12","Tuttas","Frank" .EXAMPLE New-Pupil -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 .EXAMPLE New-Pupil -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE New-Pupil -VNAME Jörg -NNAME Tuttas -GEBDAT 1968-04-11 -EMAIL jtuttas@gmx.net -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE New-Pupil -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 -uri http://localhost:8080/Diklabu/api/v1/ -ID_AUSBILDER=4711 #> function New-Pupil { Param ( # Schülerobjekt [Parameter(ValueFromPipeline=$true)] $schueler, # Vorname des Schülers [Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)] [String]$VNAME, # Nachname des Schülers [Parameter(Mandatory=$true,Position=1,ValueFromPipelineByPropertyName=$true)] [String]$NNAME, # Geburtsdatum im SQL Format yyyy-mm-dd [Parameter(Mandatory=$true,Position=2,ValueFromPipelineByPropertyName=$true)] [String]$GEBDAT, # Adresse des Diklabu Servers [String]$uri=$global:server, [Parameter(ValueFromPipelineByPropertyName=$true)] # EMail Adresse des Schülers [String]$EMAIL, [Parameter(ValueFromPipelineByPropertyName=$true)] # ID Des Ausbilders [int]$ID_AUSBILDER, # Abgang [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$ABGANG="N", # Info [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$INFO ) Begin { $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $schueler=echo "" | Select-Object -Property "EMAIL","GEBDAT","VNAME","NNAME","ID_AUSBILDER","ABGANG","INFO" $schueler.VNAME=$VNAME $schueler.NNAME=$NNAME $schueler.GEBDAT=$GEBDAT $schueler.EMAIL=$EMAIL $schueler.ID_AUSBILDER=$ID_AUSBILDER $schueler.ABGANG=$ABGANG $schueler.INFO=$INFO try { $r=Invoke-RestMethod -Method Post -Uri ($uri+"schueler/admin") -Headers $headers -Body (ConvertTo-Json $schueler) return $r; } catch { Write-Host "New-Pupil: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription -ForegroundColor red } } } <# .Synopsis Attribute eines oder mehrerer Schüler ändern .DESCRIPTION Ändert Attribute eines oder mehrerer Schüler .EXAMPLE Set-Pupil -id 1234 -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 .EXAMPLE Set-Pupil -id 1234 -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE Set-Pupil -id 1234 -VNAME Jörg -NNAME Tuttas -GEBDAT 1968-04-11 -EMAIL jtuttas@gmx.net -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE Set-Pupil -id 1234 -VNAME Joerg -NNAME Tuttas -GEBDAT 1968-04-11 -uri http://localhost:8080/Diklabu/api/v1/ -ID_AUSBILDER=4711 .EXAMPLE 1234,5678 | Set-Pupil -ABGANG "J" .EXAMPLE Find-Pupil -VNAME % -NNAME % -GEBDAT 1993-12-30 | Set-Pupil -INFO "Im Dezember Geburtstag" .DESCRIPTION Alle Schüler die am 30.12.1993 Geburtstag haben, wird die Bemerkung "Im Dezember Geburtstag" zugewiesen .EXAMPLE Find-Coursemember FISI13B | Set-Pupil -ABGANG "J" .DESCRIPTION Alle Schüler der Klasse FISI13B erhalten das Attribut ABGANG=J #> function Set-Pupil { Param ( # Schülerobjekt [Parameter(ValueFromPipeline=$true)] $schueler, # ID des Schülers [Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)] [int]$id, # Vorname des Schülers [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$VNAME, # Nachname des Schülers [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$NNAME, # Geburtsdatum im SQL Format yyyy-mm-dd [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$GEBDAT, # Adresse des Diklabu Servers [String]$uri=$global:server, # EMail Adresse des Schülers [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$EMAIL, # ID Des Ausbilders [Parameter(ValueFromPipelineByPropertyName=$true)] [int]$ID_AUSBILDER, # Abgang [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$ABGANG, # Info [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$INFO ) Begin { $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { $schueler=echo "" | Select-Object -Property "EMAIL","GEBDAT","VNAME","NNAME","ID_AUSBILDER","ABGANG","INFO" $schueler.VNAME=$VNAME $schueler.NNAME=$NNAME $schueler.GEBDAT=$GEBDAT $schueler.EMAIL=$EMAIL $schueler.ID_AUSBILDER=$ID_AUSBILDER $schueler.ABGANG=$ABGANG $schueler.INFO=$INFO try { $r=Invoke-RestMethod -Method Post -Uri ($uri+"schueler/admin/"+$id) -Headers $headers -Body (ConvertTo-Json $schueler) return $r; } catch { Write-Host "Set-Pupil: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription -ForegroundColor red } } } <# .Synopsis Einen oder mehrere Schüler löschen .DESCRIPTION Entfernt einen oder mehrere Schüler aus der Tabelle Schüler, sofern er/sie nocht nicht einer Klasse zugerodnet ist .EXAMPLE Delete-Pupil -id 1234 .EXAMPLE Delete-Pupil -id 1234 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE 1234,5678 | Delete-Pupil .EXAMPLE Find-Pupil -VNAME % -NNAME % -GEBDAT 1968-04-11 | Delete-Pupil .DESCRIPTION Löscht alle Schüler, die am 11.4.1968 geboren sind .EXAMPLE Import-Csv schueler.csv | Find-Pupil | Delete-Pupil .DESCRIPTION Löscht alle Schüler, die in der CSV Datei sich befinden, die CSV Datei hat dabei folgendes Format "GEBDAT","NNAME","VNAME" "1968-04-11","Tuttas","Jörg" "1968-04-11","Tuttas","Joerg" "1968-04-12","Tuttas","Frank" #> function Delete-Pupil { Param ( # Schülerobjekt [Parameter(ValueFromPipeline=$true)] $schueler, # ID des Schülers [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [int]$id, # Adresse des Diklabu Servers [String]$uri=$global:server ) Begin { $headers=@{} $headers["content-Type"]="application/json;charset=iso-8859-1" $headers["auth_token"]=$global:auth_token; } Process { try { $r=Invoke-RestMethod -Method Delete -Uri ($uri+"schueler/admin/"+$id) -Headers $headers return $r; } catch { Write-Host "Delete-Pupil: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription -ForegroundColor red } } } |