ParameterSets and AllowEmptyString

This commit is contained in:
Petri Asikainen 2021-06-07 21:16:51 +03:00
parent d4c138604d
commit a2bda89abb
21 changed files with 160 additions and 2 deletions

View file

@ -36,25 +36,38 @@ Get-SnipeItAccessory -id 1
function Get-SnipeItAccessory() {
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get by ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id,
[parameter(ParameterSetName='Search')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]
@ -65,6 +78,10 @@ function Get-SnipeItAccessory() {
)
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($id -and $search){
throw "Please specify only one of -id or -search parameter"
}
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
$Parameters = @{
@ -74,6 +91,10 @@ function Get-SnipeItAccessory() {
Token = $apiKey
}
if($id){
$Parameters.Uri ="$url/api/v1/accessories/$id"
}
if ($all) {
$offstart = $(if($offset){$offset} Else {0})
$callargs = $SearchParameter

View file

@ -74,43 +74,63 @@ Get-SnipeItAsset -asset_tag "myAssetTag"-url "https://assets.example.com"-token
function Get-SnipeItAsset() {
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with id')]
[int]$id,
[parameter(ParameterSetName='Get with asset tag')]
[string]$asset_tag,
[parameter(ParameterSetName='Get with serial')]
[Alias('asset_serial')]
[string]$serial,
[parameter(ParameterSetName='Search')]
[string]$order_number,
[parameter(ParameterSetName='Search')]
[int]$model_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[bool]$requestable = $false,
[parameter(ParameterSetName='Search')]
[string]$status,
[parameter(ParameterSetName='Search')]
[int]$status_id,
[parameter(ParameterSetName='Search')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]
[string]$url,

View file

@ -34,17 +34,23 @@ Get-SnipeItCategory -search "Laptop"
function Get-SnipeItCategory()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -35,17 +35,23 @@ Gets specific company
function Get-SnipeItCompany()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory=$true)]

View file

@ -39,26 +39,36 @@ Returns specific component
function Get-SnipeItComponent() {
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'min_amt', 'order_number', 'serial', 'purchase_date', 'purchase_cost', 'company', 'category', 'qty', 'location', 'image', 'created_at')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -37,19 +37,26 @@ Get-SnipeItDepartment -id 1
function Get-SnipeItDepartment()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'image', 'users_count', 'created_at')]
[string]$sort = "created_at",

View file

@ -34,42 +34,60 @@ Get-SnipeItLicense -id 1
function Get-SnipeItLicense() {
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[int] $company_id,
[parameter(ParameterSetName='Search')]
[string]$product_key,
[parameter(ParameterSetName='Search')]
[string]$order_number,
[parameter(ParameterSetName='Search')]
[string]$purchase_order,
[parameter(ParameterSetName='Search')]
[string]$license_name,
[parameter(ParameterSetName='Search')]
[mailaddress]$license_email,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'purchase_cost', 'expiration_date', 'purchase_order', 'order_number', 'notes', 'purchase_date', 'serial', 'company', 'category', 'license_name', 'license_email', 'free_seats_count', 'seats', 'manufacturer', 'supplier')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItLocation -id 3
function Get-SnipeitLocation()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -36,17 +36,23 @@ Returns manufacturer with id 3
function Get-SnipeItManufacturer()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItModel -id 1
function Get-SnipeItModel()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItStatus -id 3
function Get-SnipeItStatus()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItSupplier -id 2
function Get-SnipeItSupplier()
{
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -44,29 +44,41 @@ Get-SnipeItUser -email user@somedomain.com
function Get-SnipeItUser() {
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[string]$id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$group_id,
[parameter(ParameterSetName='Search')]
[int]$department_id,
[parameter(ParameterSetName='Search')]
[string]$username,
[parameter(ParameterSetName='Search')]
[string]$email,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $true)]

View file

@ -17,6 +17,9 @@ Quantity of the components you have
.PARAMETER location_id
ID number of the location the accessory is assigned to
.PARAMETER order_number
Order number of the component
.PARAMETER purchase_date
Date accessory was purchased
@ -56,6 +59,8 @@ function New-SnipeItComponent() {
[int]$location_id,
[string]$order_number,
[datetime]$purchase_date,
[float]$purchase_cost,

View file

@ -84,7 +84,7 @@ function Set-SnipeItAccessory() {
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[AllowEmptyString]
[AllowEmptyString()]
[string]$order_number,
[float]$purchase_cost,
@ -113,6 +113,7 @@ function Set-SnipeItAccessory() {
}
$Body = $Values | ConvertTo-Json;
Write-Verbose "Body: $Body"
}
process {

View file

@ -86,6 +86,7 @@ function Set-SnipeItAsset()
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[AllowEmptyString()]
[string]$name,
[int]$status_id,
@ -100,6 +101,7 @@ function Set-SnipeItAsset()
[string]$serial,
[AllowEmptyString()]
[string]$order_number,
[int]$warranty_months,

View file

@ -20,6 +20,9 @@ Quantity of the components you have
.PARAMETER location_id
ID number of the location the accessory is assigned to
.PARAMETER order_number
Order number for the accessory
.PARAMETER purchase_date
Date accessory was purchased
@ -58,6 +61,9 @@ function Set-SnipeItComponent()
[int]$location_id,
[AllowEmptyString()]
[string]$order_number,
[datetime]$purchase_date,
[float]$purchase_cost,

View file

@ -107,6 +107,7 @@ function Set-SnipeItLicense() {
[string]$notes,
[AllowEmptyString()]
[string]$order_number,
[float]$purchase_cost,

View file

@ -68,22 +68,30 @@ function Set-SnipeitLocation() {
[ValidateLength(3, 255)]
[string]$name,
[AllowEmptyString()]
[string]$address,
[AllowEmptyString()]
[string]$address2,
[AllowEmptyString()]
[string]$state,
[AllowEmptyString()]
[string]$country,
[AllowEmptyString()]
[string]$zip,
[AllowEmptyString()]
[string]$city,
[AllowEmptyString()]
[string]$currency,
[int]$manager_id,
[AllowEmptyString()]
[string]$ldap_ou,
[int]$parent_id,

View file

@ -46,7 +46,7 @@ function Set-SnipeItModel() {
[ValidateLength(1, 255)]
[string]$name,
[ValidateLength(1, 255)]
[AllowEmptyString()]
[string]$model_number,
[int]$category_id,

View file

@ -80,10 +80,13 @@ function Set-SnipeItUser() {
[string]$userName,
[AllowEmptyString()]
[string]$jobtitle,
[AllowEmptyString()]
[string]$email,
[AllowEmptyString()]
[string]$phone,
[int]$company_id,
@ -94,10 +97,12 @@ function Set-SnipeItUser() {
[int]$manager_id,
[AllowEmptyString()]
[string]$employee_num,
[bool]$activated,
[AllowEmptyString()]
[string]$notes,
[parameter(mandatory = $true)]