-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #163 from PetriAsi/feature/consumables
added support for consumables
- Loading branch information
Showing
11 changed files
with
1,646 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
<# | ||
.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 | ||
URL of Snipeit system,can be set using Set-SnipeitInfo command | ||
.PARAMETER apiKey | ||
Users API Key for Snipeit, can be set using Set-SnipeitInfo command | ||
.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 = $true)] | ||
[string]$url, | ||
|
||
[parameter(mandatory = $true)] | ||
[string]$apiKey | ||
) | ||
begin { | ||
|
||
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters | ||
} | ||
|
||
process { | ||
switch ($PSCmdlet.ParameterSetName) { | ||
'Search' { | ||
$Parameters = @{ | ||
Uri = "$url/api/v1/consumables" | ||
Method = 'Get' | ||
Token = $apiKey | ||
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 = @{ | ||
Uri = "$url/api/v1/consumables/$consumable_id" | ||
Method = 'Get' | ||
Token = $apiKey | ||
GetParameters = $SearchParameter | ||
} | ||
$result = Invoke-SnipeitMethod @Parameters | ||
$result | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
<# | ||
.SYNOPSIS | ||
Add a new Consumable to Snipe-it asset system | ||
.DESCRIPTION | ||
Long description | ||
.PARAMETER name | ||
Required Name of the Consumable | ||
.PARAMETER qty | ||
Required Quantity of comsumable | ||
.PARAMETER category_id | ||
Required Category ID of the Consumable, this can be got using Get-SnipeitCategory | ||
.PARAMETER min_amt | ||
Optional minimum quantity of comsumable | ||
.PARAMETER company_id | ||
Optional Company id | ||
.PARAMETER order_number | ||
Optional Order number | ||
.PARAMETER manufacturer_id | ||
Manufaturer id number of the consumable | ||
.PARAMETER location_id | ||
Location id number of the consumable | ||
.PARAMETER requestable | ||
Is consumable requestable? | ||
.PARAMETER purchase_date | ||
Optional Purchase cost of the consumable | ||
.PARAMETER purchase_cost | ||
Optional Purchase cost of the consumable | ||
.PARAMETER model_number | ||
Model number of the consumable in months | ||
.PARAMETER item_no | ||
Item number for the consumable | ||
.PARAMETER url | ||
URL of Snipeit system, can be set using Set-SnipeitInfo command | ||
.PARAMETER apiKey | ||
Users API Key for Snipeit, can be set using Set-SnipeitInfo command | ||
.EXAMPLE | ||
New-Snipeitconsumable -name "Ink pack" -qty 20 -category_id 3 -min_amt 5 | ||
Create consumable with stock count 20 , alert when stock is 5 or lower | ||
#> | ||
|
||
function New-SnipeitConsumable() | ||
{ | ||
[CmdletBinding( | ||
SupportsShouldProcess = $true, | ||
ConfirmImpact = "Low" | ||
)] | ||
|
||
Param( | ||
[parameter(mandatory = $true)] | ||
[string]$name, | ||
|
||
[parameter(mandatory = $true)] | ||
[int]$qty, | ||
|
||
[parameter(mandatory = $true)] | ||
[int]$category_id, | ||
|
||
[parameter(mandatory = $false)] | ||
[int]$min_amt, | ||
|
||
[parameter(mandatory = $false)] | ||
[int]$company_id, | ||
|
||
[parameter(mandatory = $false)] | ||
[string]$order_number, | ||
|
||
[parameter(mandatory = $false)] | ||
[int]$manufacturer_id, | ||
|
||
[parameter(mandatory = $false)] | ||
[int]$location_id, | ||
|
||
[parameter(mandatory = $false)] | ||
[bool]$requestable, | ||
|
||
[parameter(mandatory = $false)] | ||
[datetime]$purchase_date, | ||
|
||
[parameter(mandatory = $false)] | ||
[string]$purchase_cost, | ||
|
||
[parameter(mandatory = $false)] | ||
[string]$model_number, | ||
|
||
[parameter(mandatory = $false)] | ||
[string]$item_no, | ||
|
||
[parameter(mandatory = $true)] | ||
[string]$url, | ||
|
||
[parameter(mandatory = $true)] | ||
[string]$apiKey | ||
|
||
) | ||
begin { | ||
$Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters | ||
|
||
if ($values['purchase_date']) { | ||
$Values['purchase_date'] = $Values['purchase_date'].ToString("yyyy-MM-dd") | ||
} | ||
|
||
$Body = $Values | ConvertTo-Json; | ||
} | ||
|
||
process { | ||
$Parameters = @{ | ||
Uri = "$url/api/v1/consumables" | ||
Method = 'Post' | ||
Body = $Body | ||
Token = $apiKey | ||
} | ||
|
||
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) | ||
{ | ||
$result = Invoke-SnipeitMethod @Parameters | ||
} | ||
|
||
$result | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
<# | ||
.SYNOPSIS | ||
Removes consumable from Snipe-it asset system | ||
.DESCRIPTION | ||
Removes consumable or multiple consumables from Snipe-it asset system | ||
.PARAMETER ID | ||
Unique ID For consumable to be removed | ||
.PARAMETER url | ||
URL of Snipeit system, can be set using Set-SnipeitInfo command | ||
.PARAMETER apiKey | ||
User's API Key for Snipeit, can be set using Set-SnipeitInfo command | ||
.EXAMPLE | ||
Remove-SnipeitConsumable -ID 44 -Verbose | ||
.EXAMPLE | ||
Get-SnipeitConsumable -search "paper" | Remove-Snipeitconsumable | ||
#> | ||
|
||
function Remove-SnipeitConsumable () | ||
{ | ||
[CmdletBinding( | ||
SupportsShouldProcess = $true, | ||
ConfirmImpact = "Low" | ||
)] | ||
|
||
Param( | ||
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)] | ||
[int[]]$id, | ||
[parameter(mandatory = $true)] | ||
[string]$URL, | ||
[parameter(mandatory = $true)] | ||
[string]$APIKey | ||
|
||
) | ||
begin { | ||
} | ||
process { | ||
foreach($consumable_id in $id){ | ||
$Parameters = @{ | ||
Uri = "$url/api/v1/consumables/$consumable_id" | ||
Method = 'Delete' | ||
Body = '{}' | ||
Token = $apiKey | ||
} | ||
|
||
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) | ||
{ | ||
$result = Invoke-SnipeitMethod @Parameters | ||
} | ||
$result | ||
} | ||
} | ||
} |
Oops, something went wrong.