Skip to content

Commit 71abd11

Browse files
committed
Further refactoring and fixes.
1 parent fb6bd48 commit 71abd11

98 files changed

Lines changed: 3133 additions & 2507 deletions

File tree

Some content is hidden

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

.vscode/NinjaOne.code-snippets

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"Wrap selection in begin block": {
3+
"prefix": "wrap-begin",
4+
"body": [
5+
"begin {",
6+
"\t${0:$TM_SELECTED_TEXT}",
7+
"}"
8+
],
9+
"scope": "powershell",
10+
"description": "Wrap selection in begin block"
11+
},
12+
"Wrap selection in process block": {
13+
"prefix": "wrap-process",
14+
"body": [
15+
"process {",
16+
"\t${0:$TM_SELECTED_TEXT}",
17+
"}"
18+
],
19+
"scope": "powershell",
20+
"description": "Wrap selection in process block"
21+
},
22+
"Wrap selection in end block": {
23+
"prefix": "wrap-end",
24+
"body": [
25+
"end {",
26+
"\t${0:$TM_SELECTED_TEXT}",
27+
"}"
28+
],
29+
"scope": "powershell",
30+
"description": "Wrap selection in end block",
31+
},
32+
}

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@
22

33
Please note that backwards compatibility breaks are prefixed with `{"BC"}` (short for Breaking Change).
44

5+
## 2023-12-12 - Version 2.0.0-beta8
6+
7+
* Add short aliases to all commandlets.
8+
* Rewrite `Set-NinjaOneNodeRolePolicyAssignment` as `Set-NinjaOneOrganisationPolicies` and allow multiple role/policy assignments at a time.
9+
* Refactor all commandlets to use the "advanced function" template for iterative pipeline support.
10+
11+
## 2023-11-17 - Version 2.0.0-beta7
12+
13+
* Fix the `-userType` parameter on `Get-NinjaOneUsers`.
14+
15+
## 2023-11-17 - Version 2.0.0-beta6
16+
17+
* Fix broken document existence check in `Set-NinjaOneOrganisationDocument`.
18+
19+
## 2023-11-17 - Version 2.0.0-beta5
20+
21+
* Add new `-Scripts` and `-Categories` parameters to `Get-NinjaOneDeviceScriptingOptions` to allow automatic expansion of the results.
22+
* Rewrite `Invoke-NinjaOneDeviceScript` with better error handling and dependency checking.
23+
* Introduce new automated tests for comment-based-help elements.
24+
25+
## 2023-11-17 - Version 2.0.0-beta4
26+
27+
* Fix help links, commandlet names and short names (for documentation).
28+
29+
## 2023-11-16 - Version 2.0.0-beta2
30+
31+
* Fix functions not being re-added to exports after name changes.
32+
533
## 2023-11-15 - Version 2.0.0-beta1
634

735
* {"BC"} Refactoring of error handling to allow PowerShell 5.1 compatibility.

Source/NinjaOne.psd1

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@
154154
'Set-NinjaOneDeviceMaintenance',
155155
'Set-NinjaOneLocation',
156156
'Set-NinjaOneLocationCustomFields',
157-
'Set-NinjaOneNodeRolePolicyAssignment',
158157
'Set-NinjaOneOrganisation',
159158
'Set-NinjaOneOrganisationCustomFields',
160159
'Set-NinjaOneOrganisationDocument',
160+
'Set-NinjaOneOrganisationPolicies',
161161
'Set-NinjaOneTicket',
162162
'Set-NinjaOneWindowsServiceConfiguration',
163163
'Update-NinjaOneWebhook'
@@ -170,35 +170,7 @@
170170
VariablesToExport = '*'
171171

172172
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
173-
AliasesToExport = @(
174-
'Get-NinjaOneBoards',
175-
'Get-NinjaOneDeviceSoftwareProducts',
176-
'Get-NinjaOneOrganizationCustomFields',
177-
'Get-NinjaRMMOrganisationDocuments',
178-
'Get-NinjaRMMOrganizationDocuments',
179-
'Get-NinjaOneOrganizationDocuments',
180-
'Get-NinjaOneOrganizations',
181-
'New-NinjaOneOrganization',
182-
'Update-NinjaOneOrganization',
183-
'Update-NinjaOneOrganizationDocument'
184-
'Update-NinjaOneOrganisationCustomFields',
185-
'Update-NinjaOneOrganizationCustomFields',
186-
'Set-NinjaOneOrganizationCustomFields',
187-
'Update-NinjaOneLocationCustomFields',
188-
'Update-NinjaOneDeviceCustomFields',
189-
'Get-NinjaOneDevice',
190-
'Set-NinjaOneWebhook',
191-
'Update-NinjaOneDevice',
192-
'Update-NinjaOneDeviceApproval',
193-
'Update-NinjaOneDeviceCustomFields',
194-
'Update-NinjaOneDeviceMaintenance',
195-
'Update-NinjaOneLocation',
196-
'Update-NinjaOneNodeRolePolicyAssignment',
197-
'Update-NinjaOneOrganisation',
198-
'Update-NinjaOneOrganisationCustomFields',
199-
'Update-NinjaOneTicket',
200-
'Update-NinjaOneWindowsServiceConfiguration'
201-
)
173+
AliasesToExport = @()
202174

203175
# DSC resources to export from this module
204176
# DscResourcesToExport = @()

Source/NinjaOne.psm1

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -49,30 +49,4 @@ foreach ($Function in @($Functions)) {
4949
'us' = 'https://app.ninjarmm.com'
5050
'ca' = 'https://ca.ninjarmm.com'
5151
'us2' = 'https://us2.ninjarmm.com'
52-
}
53-
New-Alias -Name 'Connect-NinjaRMM' -Value 'Connect-NinjaOne'
54-
New-Alias -Name 'Find-NinjaRMMDevices' -Value 'Find-NinjaOneDevices'
55-
New-Alias -Name 'Get-NinjaOneBoards' -Value 'Get-NinjaOneTicketBoards'
56-
New-Alias -Name 'Get-NinjaOneDevice' -Value 'Get-NinjaOneDevices'
57-
New-Alias -Name 'Get-NinjaOneDeviceSoftwareProducts' -Value 'Get-NinjaOneSoftwareProducts'
58-
New-Alias -Name 'Get-NinjaOneOrganizationCustomFields' -Value 'Get-NinjaOneOrganisationCustomFields'
59-
New-Alias -Name 'Get-NinjaOneOrganizationDocuments' -Value 'Get-NinjaOneOrganisationDocuments'
60-
New-Alias -Name 'Get-NinjaOneOrganizations' -Value 'Get-NinjaOneOrganisations'
61-
New-Alias -Name 'New-NinjaOneOrganization' -Value 'New-NinjaOneOrganisation'
62-
New-Alias -Name 'Set-NinjaOneOrganizationCustomFields' -Value 'Set-NinjaOneOrganisationCustomFields'
63-
New-Alias -Name 'Set-NinjaOneWebhook' -Value 'Update-NinjaOneWebhook'
64-
New-Alias -Name 'Update-NinjaOneDevice' -Value 'Set-NinjaOneDevice'
65-
New-Alias -Name 'Update-NinjaOneDeviceApproval' -Value 'Set-NinjaOneDeviceApproval'
66-
New-Alias -Name 'Update-NinjaOneDeviceCustomFields' -Value 'Set-NinjaOneDeviceCustomFields'
67-
New-Alias -Name 'Update-NinjaOneDeviceMaintenance' -Value 'Set-NinjaOneDeviceMaintenance'
68-
New-Alias -Name 'Update-NinjaOneLocation' -Value 'Set-NinjaOneLocation'
69-
New-Alias -Name 'Update-NinjaOneLocationCustomFields' -Value 'Set-NinjaOneLocationCustomFields'
70-
New-Alias -Name 'Update-NinjaOneNodeRolePolicyAssignment' -Value 'Set-NinjaOneNodeRolePolicyAssignment'
71-
New-Alias -Name 'Update-NinjaOneOrganisation' -Value 'Set-NinjaOneOrganisation'
72-
New-Alias -Name 'Update-NinjaOneOrganisationCustomFields' -Value 'Set-NinjaOneOrganisationCustomFields'
73-
New-Alias -Name 'Update-NinjaOneOrganization' -Value 'Set-NinjaOneOrganisation'
74-
New-Alias -Name 'Update-NinjaOneOrganizationCustomFields' -Value 'Set-NinjaOneOrganisationCustomFields'
75-
New-Alias -Name 'Update-NinjaOneOrganizationDocument' -Value 'Update-NinjaOneOrganisationDocument'
76-
New-Alias -Name 'Update-NinjaOneTicket' -Value 'Update-NinjaOneTicket'
77-
New-Alias -Name 'Update-NinjaOneWindowsServiceConfiguration' -Value 'Set-NinjaOneWindowsServiceConfiguration'
78-
Export-ModuleMember -Function $Functions.BaseName -Alias *
52+
}

Source/Private/New-NinjaOnePATCHRequest.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function New-NinjaOnePATCHRequest {
2222
[HashTable]$QSCollection,
2323
# A hashtable used to build the body of the request.
2424
[Parameter(Mandatory = $True)]
25-
[Hashtable]$Body
25+
[Object]$Body
2626
)
2727
if ($null -eq $Script:NRAPIConnectionInformation) {
2828
throw "Missing NinjaOne connection information, please run 'Connect-NinjaOne' first."
@@ -54,7 +54,7 @@ function New-NinjaOnePATCHRequest {
5454
$WebRequestParams = @{
5555
Method = 'PATCH'
5656
Uri = $RequestUri.ToString()
57-
Body = ($Body | ConvertTo-Json -Depth 100)
57+
Body = (ConvertTo-Json -InputObject $Body -Depth 100)
5858
}
5959
Write-Verbose "Raw body is $($WebRequestParams.Body)"
6060
Write-Verbose "Building new NinjaOneRequest with params: $($WebRequestParams | Out-String)"

Source/Private/New-NinjaOnePOSTRequest.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function New-NinjaOnePOSTRequest {
5656
}
5757
if ($Body) {
5858
Write-Verbose 'Building [HttpBody] for New-NinjaOnePOSTRequest'
59-
$WebRequestParams.Body = ($Body | ConvertTo-Json -Depth 100)
59+
$WebRequestParams.Body = (ConvertTo-Json -InputObject $Body -Depth 100)
6060
Write-Verbose "Raw body is $($WebRequestParams.Body)"
6161
} else {
6262
Write-Verbose 'No body provided for New-NinjaOnePOSTRequest'

Source/Private/New-NinjaOnePUTRequest.ps1

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function New-NinjaOnePUTRequest {
2020
[HashTable]$QSCollection,
2121
# A hashtable used to build the body of the request.
2222
[Parameter(Mandatory = $True)]
23-
[Hashtable]$Body,
23+
[Object]$Body,
2424
# Force body to an array.
2525
[Switch]$AsArray
2626
)
@@ -57,7 +57,13 @@ function New-NinjaOnePUTRequest {
5757
}
5858
if ($Body) {
5959
Write-Verbose 'Building [HttpBody] for New-NinjaOnePUTRequest'
60-
$WebRequestParams.Body = ($Body | ConvertTo-Json -Depth 100)
60+
if ($AsArray) {
61+
Write-Verbose 'Forcing body to array'
62+
$WebRequestParams.Body = (ConvertTo-Json -InputObject @($Body) -Depth 100)
63+
} else {
64+
Write-Verbose 'Not forcing body to array'
65+
$WebRequestParams.Body = (ConvertTo-Json -InputObject $Body -Depth 100)
66+
}
6167
Write-Verbose "Raw body is $($WebRequestParams.Body)"
6268
} else {
6369
Write-Verbose 'No body provided for New-NinjaOnePUTRequest'

0 commit comments

Comments
 (0)