Private/Format-RyverAttachmentObject.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
function Format-RyverAttachmentObject { <# .SYNOPSIS Parse attachment objects. .DESCRIPTION Parse attachment objects. .INPUTS System.Management.Automation.PSCustomObject[] .INPUTS System.Management.Automation.PSCustomObject .NOTES - Troy Lindsay - Twitter: @troylindsay42 - GitHub: tlindsay42 .EXAMPLE Format-RyverAttachmentObject -InputObject $objects Parses the attachment objects. .EXAMPLE $objects | Format-RyverAttachmentObject Parses the attachment objects via the pipeline. .EXAMPLE Format-RyverAttachmentObject $objects Parses the attachment objects via positional parameter. .LINK https://tlindsay42.github.io/PSRyver/Private/Format-RyverAttachmentObject/ .LINK https://github.com/tlindsay42/PSRyver/blob/master/PSRyver/Private/Format-RyverAttachmentObject.ps1 .FUNCTIONALITY Ryver #> [CmdletBinding( HelpUri = 'https://tlindsay42.github.io/PSRyver/Private/Format-RyverAttachmentObject/' )] [OutputType( [PSCustomObject[]] )] [OutputType( [PSCustomObject] )] param ( # The public forum or private team channel objects to parse. [Parameter( Mandatory = $true, Position = 0, ValueFromPipeline = $true )] [PSCustomObject[]] $InputObject ) begin { $function = $MyInvocation.MyCommand.Name Write-Verbose -Message "Beginning: '${function}'." } process { Write-Verbose -Message ( "Processing: '${function}' with ParameterSetName '$( $PSCmdlet.ParameterSetName )' and Parameters: " + ( $PSBoundParameters | Remove-SensitiveData | Format-Table -AutoSize | Out-String ) ) foreach ( $object in $InputObject ) { [PSCustomObject] @{ PSTypeName = "PSRyver.$( $object.__Metadata.Type )" Metadata = [PSCustomObject] @{ Type = $object.__Metadata.Type } ID = $object.ID.ToUInt64( $null ) Descriptor = $object.__Descriptor CreateUser = $object.CreateUser | Format-RyverUserObject CreateDate = $object.CreateDate CreateSource = $object.CreateSource | Where-Object -FilterScript { $null -ne $_ } | ForEach-Object -Process { [PSCustomObject] @{ DisplayName = $_.DisplayName Avatar = $_.Avatar } } Title = $object.Title Description = $object.Description FileName = $object.FileName Post = $object.Post Task = $object.Task } } } end { Write-Verbose -Message "Ending: '${function}'." } } |