Public/Get-SnipeitConsumable.ps1
<# .SYNOPSIS Gets a list of Snipe-it consumables .PARAMETER search A text string to search the consumables .PARAMETER id A id of specific consumable .PARAMETER company_id Id number of company .PARAMETER category_id Id number of category .PARAMETER manufacturer_id Id number of manufacturer .PARAMETER sort Sort results by column .PARAMETER order Specify the order (asc or desc) you wish to order by on your sort column .PARAMETER expand Whether to include detailed information on categories, etc (true) or just the text name (false) .PARAMETER limit Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all .PARAMETER offset Offset to use .PARAMETER all A return all results .PARAMETER url Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system. .PARAMETER apiKey Deprecated parameter, please use Connect-SnipeitPS instead. Users API Key for Snipeit. .EXAMPLE Get-SnipeitConsumable -all Returns all consumables .EXAMPLE Get-SnipeitConsumable -search paper Returns search results containeing string display .EXAMPLE Get-Snipeitconsumable -id Returns specific consumable #> function Get-SnipeitConsumable() { [CmdletBinding(DefaultParameterSetName = 'Search')] 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]$manufacturer_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')] [switch]$expand, [parameter(ParameterSetName='Search')] [int]$limit = 50, [parameter(ParameterSetName='Search')] [int]$offset, [parameter(ParameterSetName='Search')] [switch]$all = $false, [parameter(mandatory = $false)] [string]$url, [parameter(mandatory = $false)] [string]$apiKey ) begin { $SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) { Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead." Set-SnipeitPSLegacyApiKey -apiKey $apikey } if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) { Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead." Set-SnipeitPSLegacyUrl -url $url } } process { switch ($PSCmdlet.ParameterSetName) { 'Search' { $Parameters = @{ Api = "/api/v1/consumables" Method = 'Get' GetParameters = $SearchParameter } if ($all) { $offstart = $(if ($offset) {$offset} Else {0}) $callargs = $SearchParameter $callargs.Remove('all') while ($true) { $callargs['offset'] = $offstart $callargs['limit'] = $limit $res=Get-Snipeitconsumable @callargs $res if ($res.count -ne $limit) { break } $offstart = $offstart + $limit } } else { $result = Invoke-SnipeitMethod @Parameters $result } } 'Get with ID' { foreach($consumable_id in $id) { $Parameters = @{ Api = "$url/api/v1/consumables/$consumable_id" Method = 'Get' GetParameters = $SearchParameter } $result = Invoke-SnipeitMethod @Parameters $result } } } } end { # reset legacy sessions if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url -or $PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) { Reset-SnipeitPSLegacyApi } } } |