Skip to content

Commit 00fe856

Browse files
authored
Add support for filter[psa_id] (#113)
Had to implement this as a new parameter set, since psa_id requires psa_integration_type
1 parent ff2e3ae commit 00fe856

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

ITGlueAPI/Resources/Contacts.ps1

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,44 +38,64 @@ function Get-ITGlueContacts {
3838
Param (
3939
[Parameter(ParameterSetName = 'index')]
4040
[Parameter(ParameterSetName = 'show')]
41+
[Parameter(ParameterSetName = 'index_psa')]
4142
[Nullable[Int64]]$organization_id = $null,
4243

4344
[Parameter(ParameterSetName = 'index')]
45+
[Parameter(ParameterSetName = 'index_psa')]
4446
[Nullable[Int64]]$filter_id = $null,
4547

4648
[Parameter(ParameterSetName = 'index')]
49+
[Parameter(ParameterSetName = 'index_psa')]
4750
[String]$filter_first_name = '',
4851

4952
[Parameter(ParameterSetName = 'index')]
53+
[Parameter(ParameterSetName = 'index_psa')]
5054
[String]$filter_last_name = '',
5155

5256
[Parameter(ParameterSetName = 'index')]
57+
[Parameter(ParameterSetName = 'index_psa')]
5358
[String]$filter_title = '',
5459

5560
[Parameter(ParameterSetName = 'index')]
61+
[Parameter(ParameterSetName = 'index_psa')]
5662
[Nullable[Int64]]$filter_contact_type_id = $null,
5763

5864
[Parameter(ParameterSetName = 'index')]
65+
[Parameter(ParameterSetName = 'index_psa')]
5966
[Nullable[Boolean]]$filter_important = $null,
6067

6168
[Parameter(ParameterSetName = 'index')]
69+
[Parameter(ParameterSetName = 'index_psa')]
6270
[String]$filter_primary_email = '',
6371

6472
[Parameter(ParameterSetName = 'index')]
73+
[Parameter(ParameterSetName = 'index_psa')]
74+
[ValidateSet('manage', 'autotask', 'tigerpaw', 'kaseya-bms', 'pulseway-psa', 'vorex')]
75+
[String]$filter_psa_integration_type = '',
76+
77+
[Parameter(ParameterSetName = 'psa_id', Mandatory=$true)]
78+
[String]$filter_psa_id = '',
79+
80+
[Parameter(ParameterSetName = 'index')]
81+
[Parameter(ParameterSetName = 'index_psa')]
6582
[ValidateSet( 'first_name', 'last_name', 'id', 'created_at', 'updated_at', `
6683
'-first_name', '-last_name', '-id', '-created_at', '-updated_at')]
6784
[String]$sort = '',
6885

6986
[Parameter(ParameterSetName = 'index')]
87+
[Parameter(ParameterSetName = 'index_psa')]
7088
[Nullable[Int64]]$page_number = $null,
7189

7290
[Parameter(ParameterSetName = 'index')]
91+
[Parameter(ParameterSetName = 'index_psa')]
7392
[Nullable[int]]$page_size = $null,
7493

7594
[Parameter(ParameterSetName = 'show')]
7695
[Nullable[Int64]]$id = $null,
7796

7897
[Parameter(ParameterSetName = 'index')]
98+
[Parameter(ParameterSetName = 'index_psa')]
7999
[Parameter(ParameterSetName = 'show')]
80100
$include = ''
81101
)
@@ -87,7 +107,7 @@ function Get-ITGlueContacts {
87107

88108
$body = @{}
89109

90-
if ($PSCmdlet.ParameterSetName -eq 'index') {
110+
if (($PSCmdlet.ParameterSetName -eq 'index') -or ($PSCmdlet.ParameterSetName -eq 'index_psa')) {
91111
if ($filter_id) {
92112
$body += @{'filter[id]' = $filter_id}
93113
}
@@ -112,6 +132,9 @@ function Get-ITGlueContacts {
112132
if ($filter_primary_email) {
113133
$body += @{'filter[primary_email]' = $filter_primary_email}
114134
}
135+
if ($filter_psa_integration_type) {
136+
$body += @{'filter[psa_integration_type]' = $filter_psa_integration_type}
137+
}
115138
if ($sort) {
116139
$body += @{'sort' = $sort}
117140
}
@@ -122,6 +145,9 @@ function Get-ITGlueContacts {
122145
$body += @{'page[size]' = $page_size}
123146
}
124147
}
148+
if ($PSCmdlet.ParameterSetName -eq 'index_psa') {
149+
$body += @{'filter[psa_id]' = $filter_psa_id}
150+
}
125151

126152
if($include) {
127153
$body += @{'include' = $include}

0 commit comments

Comments
 (0)