parent
41ddeb6fc9
commit
1fe1790ae7
7 changed files with 88 additions and 49 deletions
@ -0,0 +1,63 @@ |
|||||||
|
{-# LANGUAGE OverloadedStrings #-} |
||||||
|
{-# LANGUAGE RecordWildCards #-} |
||||||
|
|
||||||
|
module Worldcup.Squads (Squad(..), buildSquads) where |
||||||
|
|
||||||
|
import Data.Aeson |
||||||
|
import Data.Aeson.Types |
||||||
|
import Data.HashMap.Strict as HM |
||||||
|
import Data.Maybe as M |
||||||
|
import Prelude as P |
||||||
|
import Worldcup.Continents |
||||||
|
import Worldcup.Countries |
||||||
|
import Worldcup.Events |
||||||
|
import Worldcup.EventsTeams |
||||||
|
import Worldcup.Games |
||||||
|
import Worldcup.Rounds |
||||||
|
import Worldcup.Teams |
||||||
|
import Worldcup.Tourneys |
||||||
|
|
||||||
|
|
||||||
|
data Squad = Squad { |
||||||
|
squadCountryId :: String, |
||||||
|
squadContinentId :: String, |
||||||
|
squadGoalsFor :: Int, |
||||||
|
squadGoalsAgainst :: Int |
||||||
|
} deriving (Show) |
||||||
|
|
||||||
|
instance ToJSON Squad where |
||||||
|
toJSON Squad{..} = |
||||||
|
object [ "id" .= squadId, |
||||||
|
"ct" .= squadCountry, |
||||||
|
"cn" .= squadContinent, |
||||||
|
"g" .= squadGoals ] |
||||||
|
|
||||||
|
buildSquads :: [Squad] |
||||||
|
buildSquads = [] |
||||||
|
|
||||||
|
-- countryFromTeamId :: Int -> Teams -> Countries -> Country |
||||||
|
-- countryFromTeamId _id ts = lookupCountry a where |
||||||
|
-- a = teamCountryId $ lookupTeam _id ts |
||||||
|
-- |
||||||
|
-- parseInt :: Value -> Int |
||||||
|
-- parseInt Null = 0 |
||||||
|
-- parseInt x = read $ BL8.unpack $ encode x :: Int |
||||||
|
-- |
||||||
|
-- continentFromTeamId :: Int -> Teams -> Countries -> Continents -> Continent |
||||||
|
-- continentFromTeamId _id hmT hmC = lookupContinent (countryContinentId b) where |
||||||
|
-- a = teamCountryId $ lookupTeam _id hmT |
||||||
|
-- b = lookupCountry a hmC |
||||||
|
-- |
||||||
|
-- goalsFromTeamId :: Int -> [Game] -> Int |
||||||
|
-- goalsFromTeamId _id = P.foldl reducer 0 where |
||||||
|
-- reducer acc x |
||||||
|
-- | team1Id x == _id = acc + parseInt (score1 x) + parseInt (score1et x) + parseInt (score1p x) |
||||||
|
-- | team2Id x == _id = acc + parseInt (score2 x) + parseInt (score2et x) + parseInt (score2p x) |
||||||
|
-- | otherwise = acc |
||||||
|
-- |
||||||
|
-- buildFinalResult :: [Int] -> Teams -> Countries -> Continents -> [Game] -> [FinalResult] |
||||||
|
-- buildFinalResult ets hmT hmC hmN gs = P.foldl reducer [] ets where |
||||||
|
-- reducer acc x = FinalResult x (getCountryName x) (getContinentName x) (goalCount x) : acc |
||||||
|
-- getCountryName x = countryName (countryFromTeamId x hmT hmC) |
||||||
|
-- getContinentName x = continentName (continentFromTeamId x hmT hmC hmN) |
||||||
|
-- goalCount x = goalsFromTeamId x gs |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue