From a2bda89abb2cab9ba734cf4abd6e59ae8bc05049 Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Mon, 7 Jun 2021 21:16:51 +0300 Subject: [PATCH] ParameterSets and AllowEmptyString --- SnipeitPS/Public/Get-SnipeItAccessory.ps1 | 21 ++++++++++++++++++++ SnipeitPS/Public/Get-SnipeItAsset.ps1 | 20 +++++++++++++++++++ SnipeitPS/Public/Get-SnipeItCategory.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItCompany.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItComponent.ps1 | 10 ++++++++++ SnipeitPS/Public/Get-SnipeItDepartment.ps1 | 7 +++++++ SnipeitPS/Public/Get-SnipeItLicense.ps1 | 18 +++++++++++++++++ SnipeitPS/Public/Get-SnipeItLocation.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItManufacturer.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItModel.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItStatus.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItSupplier.ps1 | 6 ++++++ SnipeitPS/Public/Get-SnipeItUser.ps1 | 12 +++++++++++ SnipeitPS/Public/New-SnipeItComponent.ps1 | 5 +++++ SnipeitPS/Public/Set-SnipeItAccessory.ps1 | 3 ++- SnipeitPS/Public/Set-SnipeItAsset.ps1 | 2 ++ SnipeitPS/Public/Set-SnipeItComponents.ps1 | 6 ++++++ SnipeitPS/Public/Set-SnipeItLicense.ps1 | 1 + SnipeitPS/Public/Set-SnipeItLocation.ps1 | 8 ++++++++ SnipeitPS/Public/Set-SnipeItModel.ps1 | 2 +- SnipeitPS/Public/Set-SnipeItUser.ps1 | 5 +++++ 21 files changed, 160 insertions(+), 2 deletions(-) diff --git a/SnipeitPS/Public/Get-SnipeItAccessory.ps1 b/SnipeitPS/Public/Get-SnipeItAccessory.ps1 index 8ac47b9..0735aad 100644 --- a/SnipeitPS/Public/Get-SnipeItAccessory.ps1 +++ b/SnipeitPS/Public/Get-SnipeItAccessory.ps1 @@ -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 diff --git a/SnipeitPS/Public/Get-SnipeItAsset.ps1 b/SnipeitPS/Public/Get-SnipeItAsset.ps1 index 772d496..9bfcfe7 100644 --- a/SnipeitPS/Public/Get-SnipeItAsset.ps1 +++ b/SnipeitPS/Public/Get-SnipeItAsset.ps1 @@ -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, diff --git a/SnipeitPS/Public/Get-SnipeItCategory.ps1 b/SnipeitPS/Public/Get-SnipeItCategory.ps1 index 827feb5..d94c01b 100644 --- a/SnipeitPS/Public/Get-SnipeItCategory.ps1 +++ b/SnipeitPS/Public/Get-SnipeItCategory.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItCompany.ps1 b/SnipeitPS/Public/Get-SnipeItCompany.ps1 index 99748d6..992d9a5 100644 --- a/SnipeitPS/Public/Get-SnipeItCompany.ps1 +++ b/SnipeitPS/Public/Get-SnipeItCompany.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItComponent.ps1 b/SnipeitPS/Public/Get-SnipeItComponent.ps1 index 9adb8c1..eb1c439 100644 --- a/SnipeitPS/Public/Get-SnipeItComponent.ps1 +++ b/SnipeitPS/Public/Get-SnipeItComponent.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItDepartment.ps1 b/SnipeitPS/Public/Get-SnipeItDepartment.ps1 index b80ec8a..b3ce3bc 100644 --- a/SnipeitPS/Public/Get-SnipeItDepartment.ps1 +++ b/SnipeitPS/Public/Get-SnipeItDepartment.ps1 @@ -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", diff --git a/SnipeitPS/Public/Get-SnipeItLicense.ps1 b/SnipeitPS/Public/Get-SnipeItLicense.ps1 index 8298fb9..6716241 100644 --- a/SnipeitPS/Public/Get-SnipeItLicense.ps1 +++ b/SnipeitPS/Public/Get-SnipeItLicense.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItLocation.ps1 b/SnipeitPS/Public/Get-SnipeItLocation.ps1 index 718e251..e94b00c 100644 --- a/SnipeitPS/Public/Get-SnipeItLocation.ps1 +++ b/SnipeitPS/Public/Get-SnipeItLocation.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItManufacturer.ps1 b/SnipeitPS/Public/Get-SnipeItManufacturer.ps1 index 36bcb61..ec93d65 100644 --- a/SnipeitPS/Public/Get-SnipeItManufacturer.ps1 +++ b/SnipeitPS/Public/Get-SnipeItManufacturer.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItModel.ps1 b/SnipeitPS/Public/Get-SnipeItModel.ps1 index 7219657..6bb27d5 100644 --- a/SnipeitPS/Public/Get-SnipeItModel.ps1 +++ b/SnipeitPS/Public/Get-SnipeItModel.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItStatus.ps1 b/SnipeitPS/Public/Get-SnipeItStatus.ps1 index ebeb50b..52fdb91 100644 --- a/SnipeitPS/Public/Get-SnipeItStatus.ps1 +++ b/SnipeitPS/Public/Get-SnipeItStatus.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItSupplier.ps1 b/SnipeitPS/Public/Get-SnipeItSupplier.ps1 index d5c84fe..64f4983 100644 --- a/SnipeitPS/Public/Get-SnipeItSupplier.ps1 +++ b/SnipeitPS/Public/Get-SnipeItSupplier.ps1 @@ -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)] diff --git a/SnipeitPS/Public/Get-SnipeItUser.ps1 b/SnipeitPS/Public/Get-SnipeItUser.ps1 index 9f02830..0d8fa7e 100644 --- a/SnipeitPS/Public/Get-SnipeItUser.ps1 +++ b/SnipeitPS/Public/Get-SnipeItUser.ps1 @@ -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)] diff --git a/SnipeitPS/Public/New-SnipeItComponent.ps1 b/SnipeitPS/Public/New-SnipeItComponent.ps1 index a846332..803e676 100644 --- a/SnipeitPS/Public/New-SnipeItComponent.ps1 +++ b/SnipeitPS/Public/New-SnipeItComponent.ps1 @@ -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, diff --git a/SnipeitPS/Public/Set-SnipeItAccessory.ps1 b/SnipeitPS/Public/Set-SnipeItAccessory.ps1 index a51b502..b51aaf7 100644 --- a/SnipeitPS/Public/Set-SnipeItAccessory.ps1 +++ b/SnipeitPS/Public/Set-SnipeItAccessory.ps1 @@ -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 { diff --git a/SnipeitPS/Public/Set-SnipeItAsset.ps1 b/SnipeitPS/Public/Set-SnipeItAsset.ps1 index 65feb7e..826640c 100644 --- a/SnipeitPS/Public/Set-SnipeItAsset.ps1 +++ b/SnipeitPS/Public/Set-SnipeItAsset.ps1 @@ -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, diff --git a/SnipeitPS/Public/Set-SnipeItComponents.ps1 b/SnipeitPS/Public/Set-SnipeItComponents.ps1 index bb96414..47406a4 100644 --- a/SnipeitPS/Public/Set-SnipeItComponents.ps1 +++ b/SnipeitPS/Public/Set-SnipeItComponents.ps1 @@ -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, diff --git a/SnipeitPS/Public/Set-SnipeItLicense.ps1 b/SnipeitPS/Public/Set-SnipeItLicense.ps1 index bcbe441..278f7dd 100644 --- a/SnipeitPS/Public/Set-SnipeItLicense.ps1 +++ b/SnipeitPS/Public/Set-SnipeItLicense.ps1 @@ -107,6 +107,7 @@ function Set-SnipeItLicense() { [string]$notes, + [AllowEmptyString()] [string]$order_number, [float]$purchase_cost, diff --git a/SnipeitPS/Public/Set-SnipeItLocation.ps1 b/SnipeitPS/Public/Set-SnipeItLocation.ps1 index ddc146b..71d2cfa 100644 --- a/SnipeitPS/Public/Set-SnipeItLocation.ps1 +++ b/SnipeitPS/Public/Set-SnipeItLocation.ps1 @@ -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, diff --git a/SnipeitPS/Public/Set-SnipeItModel.ps1 b/SnipeitPS/Public/Set-SnipeItModel.ps1 index f0efd4e..98689f3 100644 --- a/SnipeitPS/Public/Set-SnipeItModel.ps1 +++ b/SnipeitPS/Public/Set-SnipeItModel.ps1 @@ -46,7 +46,7 @@ function Set-SnipeItModel() { [ValidateLength(1, 255)] [string]$name, - [ValidateLength(1, 255)] + [AllowEmptyString()] [string]$model_number, [int]$category_id, diff --git a/SnipeitPS/Public/Set-SnipeItUser.ps1 b/SnipeitPS/Public/Set-SnipeItUser.ps1 index 196e4b2..6d8577d 100644 --- a/SnipeitPS/Public/Set-SnipeItUser.ps1 +++ b/SnipeitPS/Public/Set-SnipeItUser.ps1 @@ -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)]