From 35a4ab68fee2e42f4722e9fb76008d39643cc04c Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Tue, 19 Jan 2021 12:39:53 +0200 Subject: [PATCH 1/5] Don't require status_id or model_id when updating asset --- SnipeitPS/Public/Set-Asset.ps1 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SnipeitPS/Public/Set-Asset.ps1 b/SnipeitPS/Public/Set-Asset.ps1 index fd11788..7c38f78 100644 --- a/SnipeitPS/Public/Set-Asset.ps1 +++ b/SnipeitPS/Public/Set-Asset.ps1 @@ -59,12 +59,14 @@ function Set-Asset() [hashtable] $customfields ) - $Values = @{ - "name" = $Name - "status_id" = $status_id - "model_id" = $model_id - } + $Values = @{} + if ($Name) { $Values.Add('name',$Name)} + + if ($status_id) { $Values.Add('status_id',$status_id)} + + if ($model_id) { $Values.Add('model_id',$model_id)} + if ($customfields) { $Values += $customfields From e559e711436a77244aabcaf0c9a3b2551f2b1e31 Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Tue, 19 Jan 2021 17:34:41 +0200 Subject: [PATCH 2/5] Export Reset-AssetOwner --- SnipeitPS/SnipeItPS.psd1 | Bin 9660 -> 9718 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/SnipeitPS/SnipeItPS.psd1 b/SnipeitPS/SnipeItPS.psd1 index 1a5873b62e142b0e6221911f91864a4c4d0a2bb4..a719c3ba5025bdfbbf8aab716455491501491bc4 100644 GIT binary patch delta 30 mcmdnv{mpyB2Jy+y#7!n|5Z7Z3Vn}5up1e}rcC(bkB3=N=O$%QD delta 23 fcmez7y~lgQ2Jy*H#Pudga!lSJZn8N Date: Sun, 24 Jan 2021 09:27:16 +0200 Subject: [PATCH 3/5] Match case with module directory --- SnipeitPS/{SnipeItPS.psd1 => SnipeitPS.psd1} | Bin SnipeitPS/{SnipeItPS.psm1 => SnipeitPS.psm1} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename SnipeitPS/{SnipeItPS.psd1 => SnipeitPS.psd1} (100%) rename SnipeitPS/{SnipeItPS.psm1 => SnipeitPS.psm1} (100%) diff --git a/SnipeitPS/SnipeItPS.psd1 b/SnipeitPS/SnipeitPS.psd1 similarity index 100% rename from SnipeitPS/SnipeItPS.psd1 rename to SnipeitPS/SnipeitPS.psd1 diff --git a/SnipeitPS/SnipeItPS.psm1 b/SnipeitPS/SnipeitPS.psm1 similarity index 100% rename from SnipeitPS/SnipeItPS.psm1 rename to SnipeitPS/SnipeitPS.psm1 From a5e691d8f058c04dbfd51ea9cb63d1601fc829e7 Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Sun, 24 Jan 2021 09:30:47 +0200 Subject: [PATCH 4/5] Module name case --- SnipeitPS/{SnipeitPS.psd1 => SnipeItPS.psd1} | Bin SnipeitPS/{SnipeitPS.psm1 => SnipeItPS.psm1} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename SnipeitPS/{SnipeitPS.psd1 => SnipeItPS.psd1} (100%) rename SnipeitPS/{SnipeitPS.psm1 => SnipeItPS.psm1} (100%) diff --git a/SnipeitPS/SnipeitPS.psd1 b/SnipeitPS/SnipeItPS.psd1 similarity index 100% rename from SnipeitPS/SnipeitPS.psd1 rename to SnipeitPS/SnipeItPS.psd1 diff --git a/SnipeitPS/SnipeitPS.psm1 b/SnipeitPS/SnipeItPS.psm1 similarity index 100% rename from SnipeitPS/SnipeitPS.psm1 rename to SnipeitPS/SnipeItPS.psm1 From 6828244dfa31f2e2308582e9a88ea06fd72eb348 Mon Sep 17 00:00:00 2001 From: Petri Asikainen Date: Fri, 29 Jan 2021 18:08:19 +0200 Subject: [PATCH 5/5] #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;