ps/Modules/Cole.PowerShell.Developer/Public/ConvertTo-JiraTeam.ps1

53 lines
2.2 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function ConvertTo-JiraTeam {
<#
.SYNOPSIS
Convert the provided objects to Jira Team representation objects
.OUTPUTS
Returns a [object[]] of Jira Teams.
#>
[CmdletBinding()]
[OutputType([string[]])]
param (
[Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
$Team
)
begin {
$logLead = (Get-LogLeadName)
# Define the defaults for the JiraTeam response to add some custom display information
$defaultTypeName = 'JiraTeam'
$defaultKeys = @('Name')
$defaultDisplaySet = @('Name', 'Department', 'Lead', 'Manager', 'ScrumMaster', 'Members')
$defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet',[string[]]$defaultDisplaySet)
$defaultKeyPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultKeyPropertySet',[string[]]$defaultKeys)
$PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet,$defaultKeyPropertySet)
}
process {
try {
$teamObject = New-Object PSCustomObject -Property @{
Name = $team.Name
Summary = $team.Summary
Department = $team.Department
Mission = $team.Mission
Lead = $team.Lead
Members = $team.Members | ConvertTo-JiraTeamMember
Manager = $team.Manager | ConvertTo-JiraTeamMember
ScrumMaster = $team.ScrumMaster | ConvertTo-JiraTeamMember
ProductOwner = $team.ProductOwner | ConvertTo-JiraTeamMember
ProjectManager = $team.ProjectManager | ConvertTo-JiraTeamMember
Links = $team.Links
}
#Give this object a unique typename
$teamObject.PSObject.TypeNames.Insert(0,$defaultTypeName)
$teamObject | Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $PSStandardMembers
return $teamObject
} catch {
Write-Warning "$logLead : Could not convert item to JiraTeam object. Check error below. Returning `$null"
Write-ErrorObject -ErrorItem $PSItem
return $null
}
}
}