Skip to content

Commit 9ebbe1a

Browse files
Merge pull request KelvinTegelaar#1072 from CHRIS-BRANNON/dev
Assign & Unassign Teams Voice User Numbers
2 parents 659a9a9 + e7c9f38 commit 9ebbe1a

3 files changed

Lines changed: 98 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using namespace System.Net
2+
3+
Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment {
4+
<#
5+
.FUNCTIONALITY
6+
Entrypoint
7+
.ROLE
8+
Teams.Voice.ReadWrite
9+
#>
10+
[CmdletBinding()]
11+
param($Request, $TriggerMetadata)
12+
13+
$APIName = $TriggerMetadata.FunctionName
14+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug'
15+
16+
$tenantFilter = $Request.Body.TenantFilter
17+
try {
18+
$null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Remove-CsPhoneNumberAssignment' -CmdParams @{Identity = $Request.Body.AssignedTo; PhoneNumber = $Request.Body.PhoneNumber; PhoneNumberType = $Request.Body.PhoneNumberType; ErrorAction = 'stop'}
19+
$Results = [pscustomobject]@{'Results' = "Successfully unassigned $($Request.Body.PhoneNumber) from $($Request.Body.AssignedTo)"}
20+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev 'Info'
21+
} catch {
22+
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
23+
$Results = [pscustomobject]@{'Results' = $ErrorMessage}
24+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev 'Error'
25+
}
26+
# Associate values to output bindings by calling 'Push-OutputBinding'.
27+
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
28+
StatusCode = [HttpStatusCode]::OK
29+
Body = $Results
30+
})
31+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using namespace System.Net
2+
3+
Function Invoke-ExecTeamsVoicePhoneNumberAssignment {
4+
<#
5+
.FUNCTIONALITY
6+
Entrypoint
7+
.ROLE
8+
Teams.Voice.ReadWrite
9+
#>
10+
[CmdletBinding()]
11+
param($Request, $TriggerMetadata)
12+
13+
$APIName = $TriggerMetadata.FunctionName
14+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug'
15+
16+
$tenantFilter = $Request.Body.TenantFilter
17+
try {
18+
if ($Request.Body.locationOnly) {
19+
$null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{LocationId = $Request.Body.input; PhoneNumber = $Request.Body.PhoneNumber; ErrorAction = 'stop'}
20+
$Results = [pscustomobject]@{'Results' = "Successfully assigned emergency location to $($Request.Body.PhoneNumber)"}
21+
} else {
22+
$null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{Identity = $Request.Body.input; PhoneNumber = $Request.Body.PhoneNumber; PhoneNumberType = $Request.Body.PhoneNumberType; ErrorAction = 'stop'}
23+
$Results = [pscustomobject]@{'Results' = "Successfully assigned $($Request.Body.PhoneNumber) to $($Request.Body.input)"}
24+
}
25+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev 'Info'
26+
} catch {
27+
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
28+
$Results = [pscustomobject]@{'Results' = $ErrorMessage}
29+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev 'Error'
30+
}
31+
# Associate values to output bindings by calling 'Push-OutputBinding'.
32+
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
33+
StatusCode = [HttpStatusCode]::OK
34+
Body = $Results
35+
})
36+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using namespace System.Net
2+
3+
Function Invoke-ListTeamsLisLocation {
4+
<#
5+
.FUNCTIONALITY
6+
Entrypoint
7+
.ROLE
8+
Teams.Voice.Read
9+
#>
10+
[CmdletBinding()]
11+
param($Request, $TriggerMetadata)
12+
13+
$APIName = $TriggerMetadata.FunctionName
14+
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug'
15+
16+
$TenantFilter = $Request.Query.TenantFilter
17+
try {
18+
$EmergencyLocations = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsOnlineLisLocation'
19+
$StatusCode = [HttpStatusCode]::OK
20+
} catch {
21+
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
22+
$StatusCode = [HttpStatusCode]::Forbidden
23+
$EmergencyLocations = $ErrorMessage
24+
}
25+
# Associate values to output bindings by calling 'Push-OutputBinding'.
26+
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
27+
StatusCode = $StatusCode
28+
Body = @($EmergencyLocations)
29+
})
30+
31+
}

0 commit comments

Comments
 (0)