public/Get-FootballTransfer.ps1
function Get-FootballTransfer { <# .EXAMPLE Get-FootballTransfer -Header $HeaderObject -Token $Token -StartDate 2025-07-01 -EndDate 2025-07-27 -Latest -Path C:\sportsmonk .EXAMPLE Get-FootballTransfer -Header $HeaderObject -Token $Token -Latest -Path C:\sportsmonk #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [Object]$Header, [Parameter(Mandatory=$false)] [ValidateNotNullOrEmpty()] [string]$EndDate, [Parameter(Mandatory=$false)] [switch]$Latest, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Path, [Parameter(Mandatory=$false)] [ValidateNotNullOrEmpty()] [string]$StartDate, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Token ) process{ $ErrorActionPreference = 'Stop' try { # Invoke rumour rest method if ($Latest) { $Uri = "https://api.sportmonks.com/v3/football/transfers/latest?api_token=$Token&include=player;type;fromTeam;toTeam;detailedPosition" $TransferResponse = Invoke-RestMethod $Uri -Method 'GET' -Headers $Header } if (!$Latest -and $($PSBoundParameters.ContainsKey('EndDate')) -and $($PSBoundParameters.ContainsKey('StartDate'))) { $Uri = "https://api.sportmonks.com/v3/football/transfers/between/$($StartDate)/$($EndDate)?api_token=$Token&include=player;type;fromTeam;toTeam;detailedPosition" $TransferResponse = Invoke-RestMethod $Uri -Method 'GET' -Headers $Header } # if #return $TransferResponse # Create directry New-Directory -Path "$Path\temp\transfers" Remove-Item -Path "$Path\temp\transfers\*" -Recurse -Force -Confirm:$false -Verbose -ErrorAction Stop foreach ($Transfer in $($TransferResponse.data)) { #$Transfer | Format-Table # Player $Player = $($Transfer.player) # Position $Position = $($Transfer.position) # From team $SourceTeam = $($Transfer.fromTeam) # To team $DesinationTeam = $($Transfer.toTeam) # Type $Type = $($Transfer.type) $PredictionObject = [PSCustomObject]@{ RumourId = $($Transfer.id) Amount = $($Transfer.amount) Born = $($Player.date_of_birth) Date = $($Transfer.date) From = $($SourceTeam.name) Completed = $($Transfer.completed) Player = $($Player.name) Position = $($Position.name) Source = $($Transfer.source_name) To = $($DesinationTeam.name) Type = $($Type.Name) } #$PredictionObject $TemplatePath = "$Path\git-hub\sportsmonk-api\templates\transfers.txt" $Template = Get-Content -Path $TemplatePath -Raw -ErrorAction Stop $Template = $Template.Replace('<Date>', $($PredictionObject.Date)) $Template = $Template.Replace('<Source>', $($PredictionObject.Source)) $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('<Completed>', $($PredictionObject.Completed)) $Template = $Template.Replace('<Position>', $($PredictionObject.Position)) $PathToUse = "$Path\temp\transfers\$($Transfer.date)-$($Transfer.id)-$($Type.Name)-transfers.txt".ToLower() Set-Content -Path $PathToUse -Value $Template -Verbose -ErrorAction Stop } # foreach } catch { throw "$($MyInvocation.MyCommand.Name): $_.Exception.Message" } # try catch } # function } # process |