Zusatzattribute.psm1
# REST-Dokumentation siehe https://wiki.kalaidos.ch/x/zpi5Aw und https://wiki.kalaidos.ch/x/dZm5Aw function New-ZusatzattributDefinitionWert-Object { [CmdletBinding()] param( [Parameter(Mandatory, Position = 0, HelpMessage = "Technischer Wert, der gespeichert wird")] [string]$Key, [Parameter(Mandatory, Position = 1, HelpMessage = "F�r den Benutzer sichtbarer Text")] [string]$Value, [Parameter()] [switch]$Default ) process { return [PSCustomObject]@{ Key = $Key; Value = $Value; IsDefault = [bool]$Default; } } } function New-ZusatzattributDefinition { [CmdletBinding()] param( [Parameter(HelpMessage = "WeeduUid der neuen Zusatzattribut-Definition (synthetische oder echte)")] $ZusatzattributDefinitionUid, [Parameter(Mandatory, HelpMessage = "Typ der Zusatzattribut-Definition")] [ValidateSet('DropdownZusatzattributDefinition','TextZusatzattributDefinition')] $Type, [Parameter(Mandatory, HelpMessage = "Bezeichnung der Zusatzattribut-Definition")] [string]$Bezeichnung, [Parameter(Mandatory, HelpMessage = "Name des Eingabefeldes in weedu")] [string]$Label, [Parameter(Mandatory, HelpMessage = "WQL-Ausdruck, der die Datens�tze angibt, auf welche das Zusatzattribut angewendet werden kann")] [string]$AnwendbarAuf, [Parameter(HelpMessage = "Wenn angegeben, so kann eine Person diesen Wert in einer Registrierungsaufforderung f�r sich selber erfassen")] [switch]$WertAufEigenerPersonSetzbar, # DropdownZusatzattributDefinition [Parameter(HelpMessage = "Liste von ausw�hlbaren Werten (k�nnen erstellt werden mit New-ZusatzattributDefinitionWert-Object)")] [array]$WerteListe, # TextZusatzattributDefinition [Parameter(HelpMessage = "Regul�rer Ausdruck, der g�ltige Eingabewerte beschreibt")] [string]$ValidierungsRegex, [Parameter(HelpMessage = "Beschreibung der g�ltigen Werte (wird dem Benutzer angezeigt)")] [string]$ValidierungsRegexBeschreibung, # Gemeinsame Parameter [Parameter] [int]$Sortierung, [Parameter(Mandatory, HelpMessage = "Sicherheitseinstellung (erstellt z.B. mit New-Sicherheitseinstellung-Object)")] [PSCustomObject]$SicherheitsEinstellung ) process{ $Body = [PSCustomObject]@{ type = $Type; Bezeichnung = $Bezeichnung; Label = $Label; AnwendbarAuf = $AnwendbarAuf; SicherheitsEinstellung = $SicherheitsEinstellung; }; if ($PSBoundParameters.ContainsKey("ZusatzattributDefinitionUid")) { $Body | Add-Member -MemberType NoteProperty -Name "uid" -Value (ConvertTo-WeeduGuid $ZusatzattributDefinitionUid); } if ($PSBoundParameters.ContainsKey("WertAufEigenerPersonSetzbar")) { $Body | Add-Member -MemberType NoteProperty -Name "WertAufEigenerPersonSetzbar" -Value $true; } if ($PSBoundParameters.ContainsKey("WerteListe")) { $Body | Add-Member -MemberType NoteProperty -Name "WerteListe" -Value $WerteListe; } if ($PSBoundParameters.ContainsKey("ValidierungsRegex")) { $Body | Add-Member -MemberType NoteProperty -Name "ValidierungsRegex" -Value $ValidierungsRegex; } if ($PSBoundParameters.ContainsKey("ValidierungsRegexBeschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "ValidierungsRegexBeschreibung" -Value $ValidierungsRegexBeschreibung; } if ($PSBoundParameters.ContainsKey("Sortierung")) { $Body | Add-Member -MemberType NoteProperty -Name "Sortierung" -Value $Sortierung; } return Invoke-Weedu -Uri "rest/ZusatzattributDefinitionen" -Method POST -Body $Body; } } function Set-ZusatzattributDefinition { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Uid der Zusatzattribut-Definition (synthetische oder echte)")] $ZusatzattributDefinitionUid, [Parameter(Mandatory, HelpMessage = "Typ der Zusatzattribut-Definition")] [ValidateSet('DropdownZusatzattributDefinition','TextZusatzattributDefinition')] $Type, [Parameter(HelpMessage = "Bezeichnung der Zusatzattribut-Definition")] [string]$Bezeichnung, [Parameter(HelpMessage = "Name des Eingabefeldes in weedu")] [string]$Label, [Parameter(HelpMessage = "WQL-Ausdruck, der die Datens�tze angibt, auf welche das Zusatzattribut angewendet werden kann")] [string]$AnwendbarAuf, [Parameter(HelpMessage = "Wenn angegeben, so kann eine Person diesen Wert in einer Registrierungsaufforderung f�r sich selber erfassen")] [bool]$WertAufEigenerPersonSetzbar, # DropdownZusatzattributDefinition [Parameter(HelpMessage = "Liste von ausw�hlbaren Werten (k�nnen erstellt werden mit New-ZusatzattributDefinitionWert-Object)")] [array]$WerteListe, # TextZusatzattributDefinition [Parameter(HelpMessage = "Regul�rer Ausdruck, der g�ltige Eingabewerte beschreibt")] [string]$ValidierungsRegex, [Parameter(HelpMessage = "Beschreibung der g�ltigen Werte (wird dem Benutzer angezeigt)")] [string]$ValidierungsRegexBeschreibung, # Gemeinsame Parameter [Parameter] [int]$Sortierung ) process{ $Body = [PSCustomObject]@{ type = $Type; }; if ($PSBoundParameters.ContainsKey("Bezeichnung")) { $Body | Add-Member -MemberType NoteProperty -Name "Bezeichnung" -Value $Bezeichnung; } if ($PSBoundParameters.ContainsKey("Label")) { $Body | Add-Member -MemberType NoteProperty -Name "Label" -Value $Label; } if ($PSBoundParameters.ContainsKey("AnwendbarAuf")) { $Body | Add-Member -MemberType NoteProperty -Name "AnwendbarAuf" -Value $AnwendbarAuf; } if ($PSBoundParameters.ContainsKey("WertAufEigenerPersonSetzbar")) { $Body | Add-Member -MemberType NoteProperty -Name "WertAufEigenerPersonSetzbar" -Value $WertAufEigenerPersonSetzbar; } if ($PSBoundParameters.ContainsKey("WerteListe")) { $Body | Add-Member -MemberType NoteProperty -Name "WerteListe" -Value $WerteListe; } if ($PSBoundParameters.ContainsKey("ValidierungsRegex")) { $Body | Add-Member -MemberType NoteProperty -Name "ValidierungsRegex" -Value $ValidierungsRegex; } if ($PSBoundParameters.ContainsKey("ValidierungsRegexBeschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "ValidierungsRegexBeschreibung" -Value $ValidierungsRegexBeschreibung; } if ($PSBoundParameters.ContainsKey("Sortierung")) { $Body | Add-Member -MemberType NoteProperty -Name "Sortierung" -Value $Sortierung; } return Invoke-Weedu -Uri "rest/ZusatzattributDefinitionen/{0}" -UriParams @(ConvertTo-WeeduGuid $ZusatzattributDefinitionUid) -Method PUT -Body $Body; } } function Get-ZusatzattributWert { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Uid des Datensatzes, f�r den ein Zusatzattribut gesetzt werden soll")] $Uid, [Parameter(Mandatory, HelpMessage = "Uid der Zusatzattribut-Definition")] $ZusatzattributDefinitionUid ) process{ return Invoke-Weedu -Uri "rest/Generic/{0}/Zusatzattribute" -UriParams @(ConvertTo-WeeduGuid $Uid) -Method GET | Where-Object { $_.ZusatzattributDefinition -eq (ConvertTo-WeeduGuid $ZusatzattributDefinitionUid) } | ForEach-Object { $_.WertString }; } } function Set-ZusatzattributWert { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Uid des Datensatzes, f�r den ein Zusatzattribut gesetzt werden soll")] $Uid, [Parameter(Mandatory, HelpMessage = "Uid der Zusatzattribut-Definition")] $ZusatzattributDefinitionUid, [Parameter(Mandatory, HelpMessage = "Typ der Zusatzattribut-Definition")] [ValidateSet('DropdownZusatzattributDefinition','TextZusatzattributDefinition')] $Type, [Parameter(Mandatory, HelpMessage = "Zu setzender Wert (technischer Wert)")] [string]$Wert ) process{ $Body = [Array]@([PSCustomObject]@{ ZusatzattributDefinition = (ConvertTo-WeeduGuid $ZusatzattributDefinitionUid); type = $Type; Wert = $Wert; }); return Invoke-Weedu -Uri "rest/Generic/{0}/Zusatzattribute" -UriParams @(ConvertTo-WeeduGuid $Uid) -Method PUT -Body $Body; } } function Remove-ZusatzattributWert { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Uid des Datensatzes, f�r den ein Zusatzattribut gesetzt werden soll")] $Uid, [Parameter(Mandatory, HelpMessage = "Uid der Zusatzattribut-Definition")] $ZusatzattributDefinitionUid, [Parameter(Mandatory, HelpMessage = "Typ der Zusatzattribut-Definition")] [ValidateSet('DropdownZusatzattributDefinition','TextZusatzattributDefinition')] $Type ) process{ $Body = [Array]@([PSCustomObject]@{ ZusatzattributDefinition = (ConvertTo-WeeduGuid $ZusatzattributDefinitionUid); type = $Type; Wert = $null; }); return Invoke-Weedu -Uri "rest/Generic/{0}/Zusatzattribute" -UriParams @(ConvertTo-WeeduGuid $Uid) -Method PUT -Body $Body; } } Export-ModuleMember -function New-ZusatzattributDefinitionWert-Object Export-ModuleMember -function New-ZusatzattributDefinition Export-ModuleMember -function Set-ZusatzattributDefinition Export-ModuleMember -function Get-ZusatzattributWert Export-ModuleMember -function Set-ZusatzattributWert Export-ModuleMember -function Remove-ZusatzattributWert |