public/Get-FootballRumour.ps1

function Get-FootballRumour {

    [CmdletBinding()]
    param(

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [Object]$Header,

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Path,

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Token

    )
    process{

        $ErrorActionPreference = 'Stop'

        try {

            # Invoke rumour rest method
            $Uri = "https://api.sportmonks.com/v3/football/transfer-rumours?api_token=$Token&include=player;type;fromTeam;toTeam;position"
            $RumoursResponse = Invoke-RestMethod $Uri -Method 'GET' -Headers $Header
        
            # Create directry
            New-Directory -Path "$Path\temp\rumours"
            Remove-Item -Path "$Path\temp\rumours\*" -Recurse -Force -Confirm:$false -Verbose -ErrorAction Stop

            foreach ($Rumour in $($RumoursResponse.data)) {

                # Player
                $Player = $($Rumour.player)

                # Position
                $Position = $($Rumour.position)

                # From team
                $SourceTeam = $($Rumour.fromTeam)

                # To team
                $DesinationTeam = $($Rumour.toTeam)

                # Type
                $Type = $($Rumour.type)

                $PredictionObject = [PSCustomObject]@{
                    RumourId    = $($Rumour.id)
                    Amount      = $($Rumour.amount)
                    Born        = $($Player.date_of_birth)
                    Currency    = $($Rumour.currency)
                    Date        = $($Rumour.date)
                    From        = $($SourceTeam.name)
                    Player      = $($Player.name)
                    Position    = $($Position.name)
                    Probability = $($Rumour.probability)
                    Source      = $($Rumour.source_name)
                    To          = $($DesinationTeam.name)
                    Type        = $($Type.Name)
                }

                $TemplatePath = "$Path\git-hub\sportsmonk-api\templates\rumours.txt"
                $Template = Get-Content -Path $TemplatePath -Raw -ErrorAction Stop
                $Template = $Template.Replace('<Date>', $($PredictionObject.Date))
                $Template = $Template.Replace('<Source>', $($PredictionObject.Source))
                $Template = $Template.Replace('<Probability>', $($PredictionObject.Probability))
                $Template = $Template.Replace('<Player>', $($PredictionObject.Player))
                $Template = $Template.Replace('<Born>', $($PredictionObject.Born))
                $Template = $Template.Replace('<From>', $($PredictionObject.From))
                $Template = $Template.Replace('<To>', $($PredictionObject.To))
                $Template = $Template.Replace('<Type>', $($PredictionObject.Type))
                $Template = $Template.Replace('<Amount>', $($PredictionObject.Amount))
                $Template = $Template.Replace('<Currency>', $($PredictionObject.Currency))
                $Template = $Template.Replace('<Position>', $($PredictionObject.Position))

                $PathToUse = "$Path\temp\rumours\$($Rumour.date)-$($Rumour.id)-$($Type.Name)-rumours.txt".ToLower()
                Set-Content -Path $PathToUse -Value $Template -Verbose -ErrorAction Stop

            } # foreach

        }
        catch {

            throw "$($MyInvocation.MyCommand.Name): $_.Exception.Message"

        } # try catch

    } # function

} # process