Skip to content

Commit f8f5224

Browse files
authored
Merge pull request #141 from snazy2000/develop
Release 1.5
2 parents 0b1d7f9 + 9f68e60 commit f8f5224

File tree

66 files changed

+926
-557
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+926
-557
lines changed

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/),
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8+
# [v1.5.x] - 2021-06-08
9+
10+
## Piping input
11+
12+
### New features
13+
Most of "Set" command accepts piped input. Piped objects "id" attribute
14+
is used to select asset set values. Like
15+
Get-SnipeItAsset -model_id 213 | Set-SnipeItAsset -notes 'This is nice!'
16+
17+
Set command accept id parameter as array, so its easier to set multiple items
18+
in one run.
19+
20+
Parameter sets. Get commands have now parameters sets.This will make syntax more
21+
clear between search and get by ID use. Use get-help to
22+
23+
### Fixes
24+
-Empty strings are accepted as input so it's possible to wipe field values if
25+
needed
26+
827
# [v1.4.x] - 2021-05-27
928

1029
## More Activity

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@ Update-Module SnipeitPS
2121
2222
# To use each session:
2323
Import-Module SnipeitPS
24-
Set-Info -URL 'https://asset.example.com' -apiKey 'tokenKey'
24+
Set-SnipeItInfo -URL 'https://asset.example.com' -apiKey 'tokenKey'
2525
```
2626

2727
### Usage
2828

2929
```powershell
3030
# Review the help at any time!
31-
Get-Help about_SnipeitPS
3231
Get-Command -Module SnipeitPS
33-
Get-Help Get-Asset -Full # or any other command
32+
Get-Help Get-SnipeItAsset -Full # or any other command
3433
```
3534
### Reporting bugs and issues
3635
Please use -Verbose switch with command you have problem with.

SnipeitPS/Private/Get-ParameterValue.ps1

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ function Get-ParameterValue {
2525
[parameter(mandatory = $true)]
2626
$Parameters
2727
,
28+
[parameter(mandatory = $true)]
29+
$BoundParameters,
2830

2931
[string[]]$DefaultExcludeParameter = @("id", "url", "apiKey", 'Debug', 'Verbose','RequestType','customfields')
3032
)
@@ -40,11 +42,16 @@ function Get-ParameterValue {
4042
try {
4143
$key = $parameter.Key
4244
if ($key -notin $DefaultExcludeParameter) {
45+
#Fill in default parameters values
4346
if ($null -ne ($value = Get-Variable -Name $key -ValueOnly -ErrorAction Ignore )) {
4447
if ($value -ne ($null -as $parameter.Value.ParameterType)) {
4548
$ParameterValues[$key] = $value
4649
}
4750
}
51+
#Fill in all given parameters even empty
52+
if ($BoundParameters.ContainsKey($key)) {
53+
$ParameterValues[$key] = $BoundParameters[$key]
54+
}
4855

4956
}
5057
}

SnipeitPS/Public/Get-SnipeItAccessory.ps1

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,38 @@ Get-SnipeItAccessory -id 1
3636

3737
function Get-SnipeItAccessory() {
3838
Param(
39+
[parameter(ParameterSetName='Search')]
3940
[string]$search,
4041

42+
[parameter(ParameterSetName='Get by ID')]
43+
[int]$id,
44+
45+
[parameter(ParameterSetName='Search')]
4146
[int]$company_id,
4247

48+
[parameter(ParameterSetName='Search')]
4349
[int]$category_id,
4450

51+
[parameter(ParameterSetName='Search')]
4552
[int]$manufacturer_id,
4653

54+
[parameter(ParameterSetName='Search')]
4755
[int]$supplier_id,
4856

57+
[parameter(ParameterSetName='Search')]
4958
[string]$sort = "created_at",
5059

60+
[parameter(ParameterSetName='Search')]
5161
[ValidateSet("asc", "desc")]
5262
[string]$order = "desc",
5363

64+
[parameter(ParameterSetName='Search')]
5465
[int]$limit = 50,
5566

67+
[parameter(ParameterSetName='Search')]
5668
[int]$offset,
5769

70+
[parameter(ParameterSetName='Search')]
5871
[switch]$all = $false,
5972

6073
[parameter(mandatory = $true)]
@@ -65,7 +78,11 @@ function Get-SnipeItAccessory() {
6578
)
6679
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
6780

68-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
81+
if ($id -and $search){
82+
throw "Please specify only one of -id or -search parameter"
83+
}
84+
85+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
6986

7087
$Parameters = @{
7188
Uri = "$url/api/v1/accessories"
@@ -74,6 +91,10 @@ function Get-SnipeItAccessory() {
7491
Token = $apiKey
7592
}
7693

94+
if($id){
95+
$Parameters.Uri ="$url/api/v1/accessories/$id"
96+
}
97+
7798
if ($all) {
7899
$offstart = $(if($offset){$offset} Else {0})
79100
$callargs = $SearchParameter

SnipeitPS/Public/Get-SnipeItActivity.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ function Get-SnipeItActivity() {
8888
throw "Please specify both item_type and item_id"
8989
}
9090

91-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
91+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
9292

9393

9494
$Parameters = @{

SnipeitPS/Public/Get-SnipeItAsset.ps1

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,43 +74,63 @@ Get-SnipeItAsset -asset_tag "myAssetTag"-url "https://assets.example.com"-token
7474

7575
function Get-SnipeItAsset() {
7676
Param(
77+
[parameter(ParameterSetName='Search')]
7778
[string]$search,
7879

80+
[parameter(ParameterSetName='Get with id')]
7981
[int]$id,
8082

83+
[parameter(ParameterSetName='Get with asset tag')]
8184
[string]$asset_tag,
8285

83-
[string]$asset_serial,
86+
[parameter(ParameterSetName='Get with serial')]
87+
[Alias('asset_serial')]
88+
[string]$serial,
8489

85-
[int]$order_number,
90+
[parameter(ParameterSetName='Search')]
91+
[string]$order_number,
8692

93+
[parameter(ParameterSetName='Search')]
8794
[int]$model_id,
8895

96+
[parameter(ParameterSetName='Search')]
8997
[int]$category_id,
9098

99+
[parameter(ParameterSetName='Search')]
91100
[int]$manufacturer_id,
92101

102+
[parameter(ParameterSetName='Search')]
93103
[int]$company_id,
94104

105+
[parameter(ParameterSetName='Search')]
95106
[int]$location_id,
96107

108+
[parameter(ParameterSetName='Search')]
97109
[int]$depreciation_id,
98110

111+
[parameter(ParameterSetName='Search')]
99112
[bool]$requestable = $false,
100113

114+
[parameter(ParameterSetName='Search')]
101115
[string]$status,
102116

117+
[parameter(ParameterSetName='Search')]
103118
[int]$status_id,
104119

120+
[parameter(ParameterSetName='Search')]
105121
[string]$sort = "created_at",
106122

123+
[parameter(ParameterSetName='Search')]
107124
[ValidateSet("asc", "desc")]
108125
[string]$order = "desc",
109126

127+
[parameter(ParameterSetName='Search')]
110128
[int]$limit = 50,
111129

130+
[parameter(ParameterSetName='Search')]
112131
[int]$offset,
113132

133+
[parameter(ParameterSetName='Search')]
114134
[switch]$all = $false,
115135
[parameter(mandatory = $true)]
116136
[string]$url,
@@ -120,7 +140,7 @@ function Get-SnipeItAsset() {
120140
)
121141
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
122142

123-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
143+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
124144

125145

126146
$apiurl = "$url/api/v1/hardware"

SnipeitPS/Public/Get-SnipeItAssetMaintenance.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function Get-SnipeItAssetMaintenance() {
6464

6565
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
6666

67-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
67+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
6868

6969
$Parameters = @{
7070
Uri = "$url/api/v1/maintenances"

SnipeitPS/Public/Get-SnipeItCategory.ps1

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,23 @@ Get-SnipeItCategory -search "Laptop"
3434
function Get-SnipeItCategory()
3535
{
3636
Param(
37+
[parameter(ParameterSetName='Search')]
3738
[string]$search,
3839

40+
[parameter(ParameterSetName='Get with ID')]
3941
[int]$id,
4042

43+
[parameter(ParameterSetName='Search')]
4144
[ValidateSet("asc", "desc")]
4245
[string]$order = "desc",
4346

47+
[parameter(ParameterSetName='Search')]
4448
[int]$limit = 50,
4549

50+
[parameter(ParameterSetName='Search')]
4651
[int]$offset,
4752

53+
[parameter(ParameterSetName='Search')]
4854
[switch]$all = $false,
4955

5056
[parameter(mandatory = $true)]
@@ -55,7 +61,7 @@ function Get-SnipeItCategory()
5561
)
5662
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
5763

58-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
64+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
5965

6066
$apiurl = "$url/api/v1/categories"
6167

SnipeitPS/Public/Get-SnipeItCompany.ps1

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,23 @@ Gets specific company
3535
function Get-SnipeItCompany()
3636
{
3737
Param(
38+
[parameter(ParameterSetName='Search')]
3839
[string]$search,
3940

41+
[parameter(ParameterSetName='Get with ID')]
4042
[int]$id,
4143

44+
[parameter(ParameterSetName='Search')]
4245
[ValidateSet("asc", "desc")]
4346
[string]$order = "desc",
4447

48+
[parameter(ParameterSetName='Search')]
4549
[int]$limit = 50,
4650

51+
[parameter(ParameterSetName='Search')]
4752
[int]$offset,
4853

54+
[parameter(ParameterSetName='Search')]
4955
[switch]$all = $false,
5056

5157
[parameter(mandatory=$true)]
@@ -57,7 +63,7 @@ function Get-SnipeItCompany()
5763

5864
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
5965

60-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
66+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
6167

6268
$apiurl = "$url/api/v1/companies"
6369

SnipeitPS/Public/Get-SnipeItComponent.ps1

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,26 +39,36 @@ Returns specific component
3939

4040
function Get-SnipeItComponent() {
4141
Param(
42+
[parameter(ParameterSetName='Search')]
4243
[string]$search,
4344

45+
[parameter(ParameterSetName='Get with ID')]
4446
[int]$id,
4547

48+
[parameter(ParameterSetName='Search')]
4649
[int]$category_id,
4750

51+
[parameter(ParameterSetName='Search')]
4852
[int]$company_id,
4953

54+
[parameter(ParameterSetName='Search')]
5055
[int]$location_id,
5156

57+
[parameter(ParameterSetName='Search')]
5258
[ValidateSet("asc", "desc")]
5359
[string]$order = "desc",
5460

61+
[parameter(ParameterSetName='Search')]
5562
[ValidateSet('id', 'name', 'min_amt', 'order_number', 'serial', 'purchase_date', 'purchase_cost', 'company', 'category', 'qty', 'location', 'image', 'created_at')]
5663
[string]$sort = "created_at",
5764

65+
[parameter(ParameterSetName='Search')]
5866
[int]$limit = 50,
5967

68+
[parameter(ParameterSetName='Search')]
6069
[int]$offset,
6170

71+
[parameter(ParameterSetName='Search')]
6272
[switch]$all = $false,
6373

6474
[parameter(mandatory = $true)]
@@ -70,7 +80,7 @@ function Get-SnipeItComponent() {
7080

7181
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
7282

73-
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
83+
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
7484

7585
$apiurl = "$url/api/v1/components"
7686

0 commit comments

Comments
 (0)