Skip to content

Commit 19fb68f

Browse files
authored
Merge pull request #152 from snazy2000/develop
Specify default parameter sets and list audits
2 parents 69f498e + 7644e08 commit 19fb68f

32 files changed

+142
-84
lines changed

SnipeitPS/Public/Get-SnipeitAccessory.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Get-SnipeitAccessory -id 1
3535
#>
3636

3737
function Get-SnipeitAccessory() {
38+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3839
Param(
3940
[parameter(ParameterSetName='Search')]
4041
[string]$search,

SnipeitPS/Public/Get-SnipeitAsset.ps1

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ Exact asset tag to query
1414
.PARAMETER asset_serial
1515
Exact asset serialnumber to query
1616
17+
.PARAMETER audit_due
18+
Retrieve a list of assets that are due for auditing soon.
19+
20+
.PARAMETER audit_overdue
21+
Retrieve a list of assets that are overdue for auditing.
22+
1723
.PARAMETER order_number
1824
Optionally restrict asset results to this order number
1925
@@ -73,6 +79,7 @@ Get-SnipeitAsset -asset_tag "myAssetTag"-url "https://assets.example.com"-token
7379
#>
7480

7581
function Get-SnipeitAsset() {
82+
[CmdletBinding(DefaultParameterSetName = 'Search')]
7683
Param(
7784
[parameter(ParameterSetName='Search')]
7885
[string]$search,
@@ -87,6 +94,12 @@ function Get-SnipeitAsset() {
8794
[Alias('asset_serial')]
8895
[string]$serial,
8996

97+
[parameter(ParameterSetName='Assets due auditing soon')]
98+
[switch]$audit_due,
99+
100+
[parameter(ParameterSetName='Assets overdue for auditing')]
101+
[switch]$audit_overdue,
102+
90103
[parameter(ParameterSetName='Search')]
91104
[string]$order_number,
92105

@@ -118,57 +131,52 @@ function Get-SnipeitAsset() {
118131
[int]$status_id,
119132

120133
[parameter(ParameterSetName='Search')]
121-
[string]$sort = "created_at",
134+
[parameter(ParameterSetName='Assets due auditing soon')]
135+
[parameter(ParameterSetName='Assets overdue for auditing')]
136+
[ValidateSet('id','created_at','asset_tag','serial','order_number','model_id','category_id','manufacturer_id','company_id','location_id','status','status_id')]
137+
[string]$sort,
122138

123139
[parameter(ParameterSetName='Search')]
140+
[parameter(ParameterSetName='Assets due auditing soon')]
141+
[parameter(ParameterSetName='Assets overdue for auditing')]
124142
[ValidateSet("asc", "desc")]
125-
[string]$order = "desc",
143+
[string]$order,
126144

127145
[parameter(ParameterSetName='Search')]
146+
[parameter(ParameterSetName='Assets due auditing soon')]
147+
[parameter(ParameterSetName='Assets overdue for auditing')]
128148
[int]$limit = 50,
129149

130150
[parameter(ParameterSetName='Search')]
151+
[parameter(ParameterSetName='Assets due auditing soon')]
152+
[parameter(ParameterSetName='Assets overdue for auditing')]
131153
[int]$offset,
132154

133155
[parameter(ParameterSetName='Search')]
156+
[parameter(ParameterSetName='Assets due auditing soon')]
157+
[parameter(ParameterSetName='Assets overdue for auditing')]
134158
[switch]$all = $false,
159+
135160
[parameter(mandatory = $true)]
136161
[string]$url,
137162

138163
[parameter(mandatory = $true)]
139164
[string]$apiKey
140165
)
166+
141167
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
142168

143169
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
144170

145-
146-
$apiurl = "$url/api/v1/hardware"
147-
148-
if ($search -and ($asset_tag -or $asset_serial -or $id)) {
149-
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only one of -search , -asset_tag or -asset_serial parameter"
150-
}
151-
152-
if ($id) {
153-
if ( $search -or $asset_serial -or $asset_tag) {
154-
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only one of -search , -asset_tag or -asset_serial parameter"
155-
}
156-
$apiurl= "$url/api/v1/hardware/$id"
171+
switch ($PsCmdlet.ParameterSetName) {
172+
'Search' { $apiurl = "$url/api/v1/hardware" }
173+
'Get with id' {$apiurl= "$url/api/v1/hardware/$id"}
174+
'Get with asset tag' {$apiurl= "$url/api/v1/hardware/bytag/$asset_tag"}
175+
'Get with serial' { $apiurl= "$url/api/v1/hardware/byserial/$asset_serial"}
176+
'Assets due auditing soon' {$apiurl = "$url/api/v1/hardware/audit/due"}
177+
'Assets overdue for auditing' {$apiurl = "$url/api/v1/hardware/audit/overdue"}
157178
}
158179

159-
if ($asset_tag) {
160-
if ( $search -or $asset_serial -or $id) {
161-
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only one of -search , -asset_tag or -asset_serial parameter"
162-
}
163-
$apiurl= "$url/api/v1/hardware/bytag/$asset_tag"
164-
}
165-
166-
if ($asset_serial) {
167-
if ( $search -or $asset_tag) {
168-
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only one of-search , -asset_tag or -asset_serial parameter"
169-
}
170-
$apiurl= "$url/api/v1/hardware/byserial/$asset_serial"
171-
}
172180

173181
$Parameters = @{
174182
Uri = $apiurl
@@ -180,6 +188,7 @@ function Get-SnipeitAsset() {
180188
if ($all) {
181189
$offstart = $(if ($offset){$offset} Else {0})
182190
$callargs = $SearchParameter
191+
Write-Verbose "Callargs: $($callargs | convertto-json)"
183192
$callargs.Remove('all')
184193

185194
while ($true) {

SnipeitPS/Public/Get-SnipeitCategory.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Get-SnipeitCategory -search "Laptop"
3333

3434
function Get-SnipeitCategory()
3535
{
36+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3637
Param(
3738
[parameter(ParameterSetName='Search')]
3839
[string]$search,

SnipeitPS/Public/Get-SnipeitCompany.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Gets specific company
3434

3535
function Get-SnipeitCompany()
3636
{
37+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3738
Param(
3839
[parameter(ParameterSetName='Search')]
3940
[string]$search,

SnipeitPS/Public/Get-SnipeitComponent.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ Get-SnipeitComponent -id
3636
Returns specific component
3737
3838
#>
39-
4039
function Get-SnipeitComponent() {
40+
[CmdletBinding(DefaultParameterSetName = 'Search')]
4141
Param(
4242
[parameter(ParameterSetName='Search')]
4343
[string]$search,

SnipeitPS/Public/Get-SnipeitDepartment.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Get-SnipeitDepartment -id 1
3636

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

SnipeitPS/Public/Get-SnipeitLicense.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Get-SnipeitLicense -id 1
3333
#>
3434

3535
function Get-SnipeitLicense() {
36+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3637
Param(
3738
[parameter(ParameterSetName='Search')]
3839
[string]$search,

SnipeitPS/Public/Get-SnipeitLocation.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Get-SnipeitLocation -id 3
3333

3434
function Get-SnipeitLocation()
3535
{
36+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3637
Param(
3738
[parameter(ParameterSetName='Search')]
3839
[string]$search,

SnipeitPS/Public/Get-SnipeitManufacturer.ps1

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
<#
2-
.SYNOPSIS
3-
# Gets a list of Snipe-it Manufacturers
2+
.SYNOPSIS
3+
# Gets a list of Snipe-it Manufacturers
44
5-
.PARAMETER search
6-
A text string to search the Manufactures data
5+
.PARAMETER search
6+
A text string to search the Manufactures data
77
8-
.PARAMETER id
9-
A id of specific Manufactuter
8+
.PARAMETER id
9+
A id of specific Manufactuter
1010
11-
.PARAMETER limit
12-
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
11+
.PARAMETER limit
12+
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
1313
14-
.PARAMETER offset
15-
Offset to use
14+
.PARAMETER offset
15+
Offset to use
1616
17-
.PARAMETER all
18-
A return all results, works with -offset and other parameters
17+
.PARAMETER all
18+
A return all results, works with -offset and other parameters
1919
20-
.PARAMETER url
21-
URL of Snipeit system, can be set using Set-SnipeitInfo command
20+
.PARAMETER url
21+
URL of Snipeit system, can be set using Set-SnipeitInfo command
2222
23-
.PARAMETER apiKey
24-
Users API Key for Snipeit, can be set using Set-SnipeitInfo command
23+
.PARAMETER apiKey
24+
Users API Key for Snipeit, can be set using Set-SnipeitInfo command
2525
26-
.EXAMPLE
27-
Get-SnipeitManufacturer -search HP
28-
Search all manufacturers for string HP
26+
.EXAMPLE
27+
Get-SnipeitManufacturer -search HP
28+
Search all manufacturers for string HP
2929
30-
.EXAMPLE
31-
Get-SnipeitManufacturer -id 3
32-
Returns manufacturer with id 3
30+
.EXAMPLE
31+
Get-SnipeitManufacturer -id 3
32+
Returns manufacturer with id 3
3333
3434
#>
35-
3635
function Get-SnipeitManufacturer()
3736
{
37+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3838
Param(
3939
[parameter(ParameterSetName='Search')]
4040
[string]$search,

SnipeitPS/Public/Get-SnipeitModel.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Get-SnipeitModel -id 1
3333

3434
function Get-SnipeitModel()
3535
{
36+
[CmdletBinding(DefaultParameterSetName = 'Search')]
3637
Param(
3738
[parameter(ParameterSetName='Search')]
3839
[string]$search,

0 commit comments

Comments
 (0)