Skip to content

Commit

Permalink
Set-TssSecret - add verbose output for Email setting
Browse files Browse the repository at this point in the history
  • Loading branch information
wsmelton committed Dec 28, 2020
1 parent 60fc8c5 commit 7bd7ac8
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
35 changes: 24 additions & 11 deletions src/functions/Set-TssSecret.ps1
Expand Up @@ -76,28 +76,23 @@
$Clear,

# Email when changed to true
[Parameter(ParameterSetName= "email")]
[Parameter(ParameterSetName = "email")]
[switch]
$EmailWhenChanged,

# Email when viewed to true
[Parameter(ParameterSetName= "email")]
[Parameter(ParameterSetName = "email")]
[switch]
$EmailWhenViewed,

# Email when HB fails to true
[Parameter(ParameterSetName= "email")]
[Parameter(ParameterSetName = "email")]
[switch]
$EmailWhenHeartbeatFails
)
begin {
$tssParams = . $GetParams $PSBoundParameters 'Set-TssSecret'
$invokeParams = @{ }

# data object for Email Settings
$emailBody = @{
data = @{ }
}
}

process {
Expand Down Expand Up @@ -134,14 +129,22 @@
}

if ($restResponse -eq $Value) {
Write-Verbose "$secret field $Field updated successfully"
Write-Verbose "Secret [$secret] field $Field updated successfully"
return $true
} elseif ($TssParams.Contains('Clear') -and ($null -eq $restResponse)) {
Write-Verbose "$secret field $Field cleared successfully"
Write-Verbose "Secret [$secret] field $Field cleared successfully"
return $true
} else {
$restResponse
Write-Verbose "Response for secret [$secret]: $restResponse"
return $false
}
}
if ($TssParams.Contains('EmailWhenChanged') -or $TssParams.Contains('EmailWhenViewed') -or $TssParams.Contains('EmailWhenHeartbeatFails')) {
# data object for Email Settings
$emailBody = @{
data = @{ }
}

$uri = $TssSession.SecretServer + ($TssSession.ApiVersion, "secrets", $secret, "email" -join "/")

if ($TssParams.Contains('EmailWhenChanged')) {
Expand Down Expand Up @@ -178,6 +181,16 @@
$err = $_.ErrorDetails.Message
Write-Error $err
}

if ($restResponse.PSObject.Properties.Name -contains 'sendEmailWhenChanged' -and $TssParams['EmailWhenChanged']) {
Write-Verbose "Secret [$secret] email setting [Send Email When Changed] updated to $EmailWhenChanged"
}
if ($restResponse.PSObject.Properties.Name -contains 'sendEmailWhenViewed' -and $TssParams['EmailWhenViewed']) {
Write-Verbose "Secret [$secret] email setting [Send Email When Viewed] updated to $EmailWhenViewed"
}
if ($restResponse.PSObject.Properties.Name -contains 'sendEmailWhenHeartbeatFails' -and $TssParams['EmailWhenHeartbeatFails']) {
Write-Verbose "Secret [$secret] email setting [Sned Email When Heartbeat Fails] updated to $EmailWhenHeartbeatFails"
}
}
}
} else {
Expand Down
4 changes: 4 additions & 0 deletions tests/functions/Set-TssSecret.Tests.ps1
Expand Up @@ -8,6 +8,7 @@ Describe "$commandName verify parameters" {
'Field', 'Value', 'Clear',
'EmailWhenChanged', 'EmailWhenViewed', 'EmailWhenHeartbeatFails'
[object[]]$currentParams = ([Management.Automation.CommandMetaData]$ExecutionContext.SessionState.InvokeCommand.GetCommand($commandName, 'Function')).Parameters.Keys
[object[]]$commandDetails = [System.Management.Automation.CommandInfo]$ExecutionContext.SessionState.InvokeCommand.GetCommand($commandName,'Function')
$unknownParameters = Compare-Object -ReferenceObject $knownParameters -DifferenceObject $currentParams -PassThru
}
Context "Verify parameters" -Foreach @{currentParams = $currentParams} {
Expand All @@ -18,6 +19,9 @@ Describe "$commandName verify parameters" {
$_ | Should -BeNullOrEmpty
}
}
Context "Command specific details" {
# This command is written to not output an object. Nothing if successful, else it writes out the error
}
}

Describe "$commandName works" {
Expand Down

0 comments on commit 7bd7ac8

Please sign in to comment.