From 6828244dfa31f2e2308582e9a88ea06fd72eb348 Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Fri, 29 Jan 2021 18:08:19 +0200 Subject: [PATCH] #67 --- SnipeitPS/Private/Get-ParameterValue.ps1 | 19 +++++++------------ SnipeitPS/Public/Get-Accessory.ps1 | 2 +- SnipeitPS/Public/Get-Asset.ps1 | 2 +- SnipeitPS/Public/Get-AssetMaintenance.ps1 | 2 +- SnipeitPS/Public/Get-Category.ps1 | 2 +- SnipeitPS/Public/Get-Company.ps1 | 2 +- SnipeitPS/Public/Get-Component.ps1 | 2 +- SnipeitPS/Public/Get-Department.ps1 | 2 +- SnipeitPS/Public/Get-License.ps1 | 2 +- SnipeitPS/Public/Get-Manufacturer.ps1 | 2 +- SnipeitPS/Public/Get-Model.ps1 | 2 +- SnipeitPS/Public/Get-SnipeitLocation.ps1 | 2 +- SnipeitPS/Public/Get-Status.ps1 | 2 +- SnipeitPS/Public/Get-Supplier.ps1 | 2 +- SnipeitPS/Public/Get-User.ps1 | 2 +- SnipeitPS/Public/New-Accessory.ps1 | 2 +- SnipeitPS/Public/New-AssetMaintenance.ps1 | 2 +- SnipeitPS/Public/New-Company.ps1 | 2 +- SnipeitPS/Public/New-Component.ps1 | 2 +- SnipeitPS/Public/New-CustomField.ps1 | 2 +- SnipeitPS/Public/New-Department.ps1 | 2 +- SnipeitPS/Public/New-License.ps1 | 2 +- SnipeitPS/Public/New-Location.ps1 | 2 +- SnipeitPS/Public/Set-Accessory.ps1 | 2 +- SnipeitPS/Public/Set-License.ps1 | 2 +- SnipeitPS/Public/Set-Model.ps1 | 2 +- SnipeitPS/Public/Set-SnipeitLocation.ps1 | 2 +- 27 files changed, 33 insertions(+), 38 deletions(-) diff --git a/SnipeitPS/Private/Get-ParameterValue.ps1 b/SnipeitPS/Private/Get-ParameterValue.ps1 index f8f7882..2cbb971 100644 --- a/SnipeitPS/Private/Get-ParameterValue.ps1 +++ b/SnipeitPS/Private/Get-ParameterValue.ps1 @@ -21,23 +21,21 @@ function Get-ParameterValue { # } [CmdletBinding()] param( - # The $MyInvocation for the caller -- DO NOT pass this (dot-source Get-ParameterValues instead) - $Invocation = $MyInvocation, - # The $PSBoundParameters for the caller -- DO NOT pass this (dot-source Get-ParameterValues instead) - $BoundParameters = $PSBoundParameters, + # Pass $MyInvocation.MyCommand.Parameters to function, powershell 7 seems to only populate variables with dot sourcing + [parameter(mandatory = $true)] + $Parameters + , [string[]]$DefaultExcludeParameter = @("id", "url", "apiKey", 'Debug', 'Verbose') ) if ($MyInvocation.Line[($MyInvocation.OffsetInLine - 1)] -ne '.') { - throw "Get-ParameterValues must be dot-sourced, like this: . Get-ParameterValues" - } - if ($PSBoundParameters.Count -gt 0) { - throw "You should not pass parameters to Get-ParameterValues, just dot-source it like this: . Get-ParameterValues" + throw "Get-ParameterValue must be dot-sourced, like this: . Get-ParameterValues" } + $ParameterValues = @{} - foreach ($parameter in $Invocation.MyCommand.Parameters.GetEnumerator()) { + foreach ($parameter in $Parameters.GetEnumerator()) { # gm -in $parameter.Value | Out-Default try { $key = $parameter.Key @@ -48,9 +46,6 @@ function Get-ParameterValue { } } - if ($BoundParameters.ContainsKey($key)) { - $ParameterValues[$key] = $BoundParameters[$key] - } } } finally {} diff --git a/SnipeitPS/Public/Get-Accessory.ps1 b/SnipeitPS/Public/Get-Accessory.ps1 index 9703b6d..1f9a639 100644 --- a/SnipeitPS/Public/Get-Accessory.ps1 +++ b/SnipeitPS/Public/Get-Accessory.ps1 @@ -60,7 +60,7 @@ function Get-Accessory() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Parameters = @{ Uri = "$url/api/v1/accessories" diff --git a/SnipeitPS/Public/Get-Asset.ps1 b/SnipeitPS/Public/Get-Asset.ps1 index 59edc73..f6dc4d2 100644 --- a/SnipeitPS/Public/Get-Asset.ps1 +++ b/SnipeitPS/Public/Get-Asset.ps1 @@ -118,7 +118,7 @@ function Get-Asset() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/hardware" diff --git a/SnipeitPS/Public/Get-AssetMaintenance.ps1 b/SnipeitPS/Public/Get-AssetMaintenance.ps1 index 8aa17a6..1cb2108 100644 --- a/SnipeitPS/Public/Get-AssetMaintenance.ps1 +++ b/SnipeitPS/Public/Get-AssetMaintenance.ps1 @@ -62,7 +62,7 @@ function Get-AssetMaintenance() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Parameters = @{ Uri = "$url/api/v1/maintenances" diff --git a/SnipeitPS/Public/Get-Category.ps1 b/SnipeitPS/Public/Get-Category.ps1 index 0457a23..bee35c8 100644 --- a/SnipeitPS/Public/Get-Category.ps1 +++ b/SnipeitPS/Public/Get-Category.ps1 @@ -54,7 +54,7 @@ function Get-Category() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/categories" diff --git a/SnipeitPS/Public/Get-Company.ps1 b/SnipeitPS/Public/Get-Company.ps1 index c02088a..975dc2a 100644 --- a/SnipeitPS/Public/Get-Company.ps1 +++ b/SnipeitPS/Public/Get-Company.ps1 @@ -54,7 +54,7 @@ function Get-Company() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/companies" diff --git a/SnipeitPS/Public/Get-Component.ps1 b/SnipeitPS/Public/Get-Component.ps1 index e601a02..bedac20 100644 --- a/SnipeitPS/Public/Get-Component.ps1 +++ b/SnipeitPS/Public/Get-Component.ps1 @@ -62,7 +62,7 @@ function Get-Component() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/components" diff --git a/SnipeitPS/Public/Get-Department.ps1 b/SnipeitPS/Public/Get-Department.ps1 index ef37e6c..8c9966c 100644 --- a/SnipeitPS/Public/Get-Department.ps1 +++ b/SnipeitPS/Public/Get-Department.ps1 @@ -57,7 +57,7 @@ function Get-Department() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/departments" diff --git a/SnipeitPS/Public/Get-License.ps1 b/SnipeitPS/Public/Get-License.ps1 index e6f9da2..5bb370b 100644 --- a/SnipeitPS/Public/Get-License.ps1 +++ b/SnipeitPS/Public/Get-License.ps1 @@ -79,7 +79,7 @@ function Get-License() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/licenses" diff --git a/SnipeitPS/Public/Get-Manufacturer.ps1 b/SnipeitPS/Public/Get-Manufacturer.ps1 index f225070..8ebdd31 100644 --- a/SnipeitPS/Public/Get-Manufacturer.ps1 +++ b/SnipeitPS/Public/Get-Manufacturer.ps1 @@ -54,7 +54,7 @@ function Get-Manufacturer() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/manufacturers" diff --git a/SnipeitPS/Public/Get-Model.ps1 b/SnipeitPS/Public/Get-Model.ps1 index d003bbc..a3e26a0 100644 --- a/SnipeitPS/Public/Get-Model.ps1 +++ b/SnipeitPS/Public/Get-Model.ps1 @@ -54,7 +54,7 @@ function Get-Model() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/models" diff --git a/SnipeitPS/Public/Get-SnipeitLocation.ps1 b/SnipeitPS/Public/Get-SnipeitLocation.ps1 index 5b60c0d..a792aa9 100644 --- a/SnipeitPS/Public/Get-SnipeitLocation.ps1 +++ b/SnipeitPS/Public/Get-SnipeitLocation.ps1 @@ -54,7 +54,7 @@ function Get-SnipeitLocation() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/locations" diff --git a/SnipeitPS/Public/Get-Status.ps1 b/SnipeitPS/Public/Get-Status.ps1 index 8e65108..ae8fb5c 100644 --- a/SnipeitPS/Public/Get-Status.ps1 +++ b/SnipeitPS/Public/Get-Status.ps1 @@ -54,7 +54,7 @@ function Get-Status() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/statuslabels" diff --git a/SnipeitPS/Public/Get-Supplier.ps1 b/SnipeitPS/Public/Get-Supplier.ps1 index 311641c..8b167c7 100644 --- a/SnipeitPS/Public/Get-Supplier.ps1 +++ b/SnipeitPS/Public/Get-Supplier.ps1 @@ -54,7 +54,7 @@ function Get-Supplier() [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/suppliers" diff --git a/SnipeitPS/Public/Get-User.ps1 b/SnipeitPS/Public/Get-User.ps1 index 3cb99b1..2c3f9d3 100644 --- a/SnipeitPS/Public/Get-User.ps1 +++ b/SnipeitPS/Public/Get-User.ps1 @@ -60,7 +60,7 @@ function Get-User() { [string]$apiKey ) - $SearchParameter = . Get-ParameterValue + $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $apiurl = "$url/api/v1/users" diff --git a/SnipeitPS/Public/New-Accessory.ps1 b/SnipeitPS/Public/New-Accessory.ps1 index 46e3849..16216aa 100644 --- a/SnipeitPS/Public/New-Accessory.ps1 +++ b/SnipeitPS/Public/New-Accessory.ps1 @@ -41,7 +41,7 @@ function New-Accessory() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['purchase_date']) { $values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/New-AssetMaintenance.ps1 b/SnipeitPS/Public/New-AssetMaintenance.ps1 index ceb2e29..b3bf214 100644 --- a/SnipeitPS/Public/New-AssetMaintenance.ps1 +++ b/SnipeitPS/Public/New-AssetMaintenance.ps1 @@ -36,7 +36,7 @@ function New-AssetMaintenance() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['start_date']) { $values['start_date'] = $values['start_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/New-Company.ps1 b/SnipeitPS/Public/New-Company.ps1 index 56aa590..620fd7a 100644 --- a/SnipeitPS/Public/New-Company.ps1 +++ b/SnipeitPS/Public/New-Company.ps1 @@ -39,7 +39,7 @@ function New-Company() [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Body = $Values | ConvertTo-Json; diff --git a/SnipeitPS/Public/New-Component.ps1 b/SnipeitPS/Public/New-Component.ps1 index f07534c..755d48b 100644 --- a/SnipeitPS/Public/New-Component.ps1 +++ b/SnipeitPS/Public/New-Component.ps1 @@ -58,7 +58,7 @@ function New-Component() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['purchase_date']) { $values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/New-CustomField.ps1 b/SnipeitPS/Public/New-CustomField.ps1 index bd93f6b..13557ad 100644 --- a/SnipeitPS/Public/New-CustomField.ps1 +++ b/SnipeitPS/Public/New-CustomField.ps1 @@ -46,7 +46,7 @@ function New-CustomField() [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters #Convert Values to JSON format $Body = $Values | ConvertTo-Json; diff --git a/SnipeitPS/Public/New-Department.ps1 b/SnipeitPS/Public/New-Department.ps1 index 867c0dc..3bcb51b 100644 --- a/SnipeitPS/Public/New-Department.ps1 +++ b/SnipeitPS/Public/New-Department.ps1 @@ -52,7 +52,7 @@ function New-Department() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Body = $Values | ConvertTo-Json; diff --git a/SnipeitPS/Public/New-License.ps1 b/SnipeitPS/Public/New-License.ps1 index 44c24d4..f826416 100644 --- a/SnipeitPS/Public/New-License.ps1 +++ b/SnipeitPS/Public/New-License.ps1 @@ -56,7 +56,7 @@ function New-License() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['expiration_date']) { $values['expiration_date'] = $values['expiration_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/New-Location.ps1 b/SnipeitPS/Public/New-Location.ps1 index 72e173d..e46e521 100644 --- a/SnipeitPS/Public/New-Location.ps1 +++ b/SnipeitPS/Public/New-Location.ps1 @@ -58,7 +58,7 @@ function New-Location() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Body = $Values | ConvertTo-Json; diff --git a/SnipeitPS/Public/Set-Accessory.ps1 b/SnipeitPS/Public/Set-Accessory.ps1 index 276840a..9671081 100644 --- a/SnipeitPS/Public/Set-Accessory.ps1 +++ b/SnipeitPS/Public/Set-Accessory.ps1 @@ -41,7 +41,7 @@ function Set-Accessory() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['purchase_date']) { $values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/Set-License.ps1 b/SnipeitPS/Public/Set-License.ps1 index be2e760..4e3df67 100644 --- a/SnipeitPS/Public/Set-License.ps1 +++ b/SnipeitPS/Public/Set-License.ps1 @@ -58,7 +58,7 @@ function Set-License() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters if ($values['expiration_date']) { $values['expiration_date'] = $values['expiration_date'].ToString("yyyy-MM-dd") diff --git a/SnipeitPS/Public/Set-Model.ps1 b/SnipeitPS/Public/Set-Model.ps1 index e75bc9e..7494045 100644 --- a/SnipeitPS/Public/Set-Model.ps1 +++ b/SnipeitPS/Public/Set-Model.ps1 @@ -31,7 +31,7 @@ function Set-Model() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Body = $Values | ConvertTo-Json; diff --git a/SnipeitPS/Public/Set-SnipeitLocation.ps1 b/SnipeitPS/Public/Set-SnipeitLocation.ps1 index ae1a24d..02930ad 100644 --- a/SnipeitPS/Public/Set-SnipeitLocation.ps1 +++ b/SnipeitPS/Public/Set-SnipeitLocation.ps1 @@ -82,7 +82,7 @@ function Set-SnipeitLocation() { [string]$apiKey ) - $Values = . Get-ParameterValue + $Values = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $Body = $Values | ConvertTo-Json;