diklabu_betriebe.psm1
<#
VERBEN: find ... findet einen oder mehrere Betriebe nach Namen. '%' ist WildCard get .... findet einen Betrieb durch angabe des PK set .... ändert Attribute eines Betriebes durch Angabe des PK new .... erzeugt ein neuen Betrieb delete . einen Betrieb löschen NOMEN: company #> <# .Synopsis Sucht einen Betrieb nach Namen .DESCRIPTION Sucht einen Betrieb nach dessen Namen. % ist Wildcard .EXAMPLE Find-Company -NAME "xy gmbh" .EXAMPLE "Tel%","Comp%" | Find-Company .EXAMPLE Import-Csv betriebe.csv | Find-Company #> function Find-Company { [CmdletBinding()] Param ( # Name des Betriebes [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [String]$NAME, # 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 { $tofind=[uri]::EscapeDataString($NAME) $r=Invoke-RestMethod -Method Get -Uri ($uri+"betriebe/"+$tofind) -Headers $headers Write-Verbose "Finder Betrieb ($tofind). Ergebnis:$r" return $r; } catch { Write-Error "Find-Company: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Attribute eines oder mehrerer Betriebe ändern .DESCRIPTION Ändert die Attribute eines oder mehrerer Betriebe .EXAMPLE Set-Company -ID 1234 -Name "xy gmbh" .EXAMPLE Set-Company -ID 1234 -Name "xy gmbh" -PLZ 16122 -ORT Hannover .EXAMPLE 1234,5678| Set-Company -ORT Hannover .EXAMPLE Find-Company -NAME "Tel%"| Set-Company -ORT Hannover Alle Betriebe die mit "Tel" anfangen wird der Ort auf Hannover gesetzt #> function Set-Company { [CmdletBinding()] Param ( [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [int]$ID, # Adresse des Diklabu Servers [String]$uri=$global:server, #Name des Betriebes [String]$NAME, #PLZ des Betriebes [String]$PLZ, #Ort des Betriebes [String]$ORT, #Straße des Betriebes [String]$STRASSE, #Hausnummer des Betriebes [String]$NR, [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 { $betrieb=echo "" | Select-Object -Property "NAME","PLZ","ORT","STRASSE","NR" if ($NAME) { $betrieb.NAME=$NAME } if ($PLZ) { $betrieb.PLZ=$PLZ } if ($ORT) { $betrieb.ORT=$ORT } if ($STRASSE) { $betrieb.STRASSE=$STRASSE } if ($NR) { $betrieb.NR=$NR } try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"betriebe/admin/id/"+$ID) -Headers $headers -Body (ConvertTo-Json $betrieb) } Write-Verbose "Ändere Daten des Betriebes mit der ID $ID auf $betrieb" return $r; } catch { Write-Error "Set-Company: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } End { } } <# .Synopsis Einen odere mehrere Betriebe abfragen .DESCRIPTION Fragt einen oder mehrere Betriebe über ID ab .EXAMPLE Get-Company -ID 1234 .EXAMPLE Get-Company -ID 1234 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE 1234,5678 | Get-Company #> function Get-Company { [CmdletBinding()] Param ( [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+"betriebe/id/"+$ID) -Headers $headers Write-Verbose "Finde Betrieb mit der ID $ID . Ergebnis: $r" return $r; } catch { Write-Warning "Get-Company: Company mit ID $ID nicht gefunden!" $log=Login-Diklabu $r=Invoke-RestMethod -Method Get -Uri ($uri+"betriebe/id/"+$ID) -Headers $headers Write-Verbose "Finde Betrieb mit der ID $ID . Ergebnis: $r" return $r; } } } <# .Synopsis Alle Betriebe abfragen .DESCRIPTION Fragt alle Betriebe ab .EXAMPLE Get-Companies .EXAMPLE Get-Companies -uri http://localhost:8080/Diklabu/api/v1/ #> function Get-Companies { [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+"betriebe/") -Headers $headers Write-Verbose "Abfrage aller Ausbildungsbetriebe" return $r; } catch { Write-Error "Get-Companies: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } <# .Synopsis Einen neuen oder mehrere neu Betrieb(e) anlegen .DESCRIPTION Erzeugt einen Neuen Betrieb. Bzw. importiert die Betriebe aus einer CSV Datei mit folgenden Einträgen "NAME","ORT","PLZ","STRASSE" "MMBBS GmbH","Hannover","30539","Exoplaza 3" "MMBBS AG","Hannover","30539","Exoplaza 4" .EXAMPLE New-Company -NAME "xy gmbh" .EXAMPLE New-Company -NAME "xy gmbh" -plz 16122 -ort Hannover .EXAMPLE Import-Csv betriebe.csv | New-Company #> function New-Company { [CmdletBinding()] Param ( # Name des Betriebes [Parameter(Mandatory=$true,ValueFromPipeline=$true,Position=0,ValueFromPipelineByPropertyName=$true)] [String]$NAME, # Adresse des Diklabu Servers [String]$uri=$global:server, #PLZ des Betriebes [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$PLZ, #Ort des Betriebes [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$ORT, #Straße des Betriebes [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$STRASSE, #Hausnummer des Betriebes [Parameter(ValueFromPipelineByPropertyName=$true)] [String]$NR, [Parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [int]$ID=-1, [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 { $betrieb=echo "" | Select-Object -Property "NAME","PLZ","ORT","STRASSE","NR","ID" if ($NAME) { $betrieb.NAME=$NAME } if ($PLZ) { $betrieb.PLZ=$PLZ } if ($ORT) { $betrieb.ORT=$ORT } if ($STRASSE) { $betrieb.STRASSE=$STRASSE } if ($NR) { $betrieb.NR=$NR } if ($ID -ne -1) { $betrieb.ID=$ID } try { if (-not $whatif) { $r=Invoke-RestMethod -Method Post -Uri ($uri+"betriebe/admin/") -Headers $headers -Body (ConvertTo-Json $betrieb) } Write-Verbose "Lege neuen Betrieb an mit den Daten $betrieb" return $r; } catch { Write-Warning "New-Company: Fehler beim Anlegen" } } } <# .Synopsis Einen oder mehrere Betrieb(e) löschen .DESCRIPTION Löscht einen oder mehrere Betriebe in der Tabelle BETRIEBE .EXAMPLE Delete-Company -ID 1234 .EXAMPLE Delete-Company -ID 1234 -uri http://localhost:8080/Diklabu/api/v1/ .EXAMPLE 1234,5678 | Delete-Company .EXAMPLE find-company -NAME "Tel%" | Delete-Company Löscht alle Betriebe die mit "Tel" anfangen #> function Delete-Company { [CmdletBinding()] Param ( [Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [int]$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+"betriebe/admin/"+$ID) -Headers $headers } Write-Verbose "Lösche Betrieb mit der ID $ID" return $r; } catch { Write-Error "Delete-Company: Status-Code"$_.Exception.Response.StatusCode.value__ " "$_.Exception.Response.StatusDescription } } } |