Public/Get-FIFAGroupStanding.ps1


function Get-FIFAGroupStanding {

    param (

        [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
        [Alias('GroupName')][char[]]$GroupLetter

        #[AsStringOptions]$AsString
    )

    BEGIN {
        $Response = Get-FIFAEndpoint 'teams/group_results'
    }

    PROCESS {
        foreach ($G1 in $GroupLetter) {

            # find team
            $Group = $Response | Where-Object {$_.group.letter -eq $G1} | Select -Expand Group
            if (!$Group) {
                Write-Warning "Group $G1 not found"
                continue
            } elseif ($Group.count -gt 1) {
                Write-Warning "Multiple teams found: $($Group.group.letter -join ',')"
                continue
            }

            $SortedGroup = for ($i =0; $i -lt 4; $i++) {
                New-Object PSObject -Property @{
                    Group = $Group.letter
                    Rank = $i+1
                    Country = $Group.teams.team[$i].country
                    Points = $Group.teams.team[$i].points
                    GoalDifferential = $Group.teams.team[$i].goal_differential
                }
            }

            # return value
            if ($AsString) {
                #Convert-FIFATeamToString $Team $AsString
                throw 'Group standing as string not implemented yet'
            } else {
                $SortedGroup
            }
        }
    }

    END {
        # no actions
    }
}