added gsShutouts field to GoalieStats
This commit is contained in:
parent
a407a01339
commit
f1f7077c8c
|
@ -120,6 +120,7 @@ module Mtlstats.Types (
|
||||||
gsGames,
|
gsGames,
|
||||||
gsMinsPlayed,
|
gsMinsPlayed,
|
||||||
gsGoalsAllowed,
|
gsGoalsAllowed,
|
||||||
|
gsShutouts,
|
||||||
gsWins,
|
gsWins,
|
||||||
gsLosses,
|
gsLosses,
|
||||||
gsTies,
|
gsTies,
|
||||||
|
@ -182,6 +183,8 @@ import Data.Aeson
|
||||||
, toJSON
|
, toJSON
|
||||||
, withObject
|
, withObject
|
||||||
, (.:)
|
, (.:)
|
||||||
|
, (.:?)
|
||||||
|
, (.!=)
|
||||||
, (.=)
|
, (.=)
|
||||||
)
|
)
|
||||||
import Data.List (isInfixOf)
|
import Data.List (isInfixOf)
|
||||||
|
@ -513,6 +516,8 @@ data GoalieStats = GoalieStats
|
||||||
-- ^ The number of minutes played
|
-- ^ The number of minutes played
|
||||||
, _gsGoalsAllowed :: Int
|
, _gsGoalsAllowed :: Int
|
||||||
-- ^ The number of goals allowed
|
-- ^ The number of goals allowed
|
||||||
|
, _gsShutouts :: Int
|
||||||
|
-- ^ The number of shutouts the goalie has accumulated
|
||||||
, _gsWins :: Int
|
, _gsWins :: Int
|
||||||
-- ^ The number of wins
|
-- ^ The number of wins
|
||||||
, _gsLosses :: Int
|
, _gsLosses :: Int
|
||||||
|
@ -523,26 +528,29 @@ data GoalieStats = GoalieStats
|
||||||
|
|
||||||
instance FromJSON GoalieStats where
|
instance FromJSON GoalieStats where
|
||||||
parseJSON = withObject "GoalieStats" $ \v -> GoalieStats
|
parseJSON = withObject "GoalieStats" $ \v -> GoalieStats
|
||||||
<$> v .: "games"
|
<$> v .:? "games" .!= 0
|
||||||
<*> v .: "mins_played"
|
<*> v .:? "mins_played" .!= 0
|
||||||
<*> v .: "goals_allowed"
|
<*> v .:? "goals_allowed" .!= 0
|
||||||
<*> v .: "wins"
|
<*> v .:? "shutouts" .!= 0
|
||||||
<*> v .: "losses"
|
<*> v .:? "wins" .!= 0
|
||||||
<*> v .: "ties"
|
<*> v .:? "losses" .!= 0
|
||||||
|
<*> v .:? "ties" .!= 0
|
||||||
|
|
||||||
instance ToJSON GoalieStats where
|
instance ToJSON GoalieStats where
|
||||||
toJSON (GoalieStats g m a w l t) = object
|
toJSON (GoalieStats g m a s w l t) = object
|
||||||
[ "games" .= g
|
[ "games" .= g
|
||||||
, "mins_played" .= m
|
, "mins_played" .= m
|
||||||
, "goals_allowed" .= a
|
, "goals_allowed" .= a
|
||||||
|
, "shutouts" .= s
|
||||||
, "wins" .= w
|
, "wins" .= w
|
||||||
, "losses" .= l
|
, "losses" .= l
|
||||||
, "ties" .= t
|
, "ties" .= t
|
||||||
]
|
]
|
||||||
toEncoding (GoalieStats g m a w l t) = pairs $
|
toEncoding (GoalieStats g m a s w l t) = pairs $
|
||||||
"games" .= g <>
|
"games" .= g <>
|
||||||
"mins_played" .= m <>
|
"mins_played" .= m <>
|
||||||
"goals_allowed" .= a <>
|
"goals_allowed" .= a <>
|
||||||
|
"shutouts" .= s <>
|
||||||
"wins" .= w <>
|
"wins" .= w <>
|
||||||
"losses" .= l <>
|
"losses" .= l <>
|
||||||
"ties" .= t
|
"ties" .= t
|
||||||
|
@ -786,6 +794,7 @@ newGoalieStats = GoalieStats
|
||||||
{ _gsGames = 0
|
{ _gsGames = 0
|
||||||
, _gsMinsPlayed = 0
|
, _gsMinsPlayed = 0
|
||||||
, _gsGoalsAllowed = 0
|
, _gsGoalsAllowed = 0
|
||||||
|
, _gsShutouts = 0
|
||||||
, _gsWins = 0
|
, _gsWins = 0
|
||||||
, _gsLosses = 0
|
, _gsLosses = 0
|
||||||
, _gsTies = 0
|
, _gsTies = 0
|
||||||
|
|
|
@ -310,18 +310,20 @@ goalieStats n = newGoalieStats
|
||||||
& gsGames .~ n
|
& gsGames .~ n
|
||||||
& gsMinsPlayed .~ n + 1
|
& gsMinsPlayed .~ n + 1
|
||||||
& gsGoalsAllowed .~ n + 2
|
& gsGoalsAllowed .~ n + 2
|
||||||
& gsWins .~ n + 3
|
& gsShutouts .~ n + 3
|
||||||
& gsLosses .~ n + 4
|
& gsWins .~ n + 4
|
||||||
& gsTies .~ n + 5
|
& gsLosses .~ n + 5
|
||||||
|
& gsTies .~ n + 6
|
||||||
|
|
||||||
goalieStatsJSON :: Int -> Value
|
goalieStatsJSON :: Int -> Value
|
||||||
goalieStatsJSON n = Object $ HM.fromList
|
goalieStatsJSON n = Object $ HM.fromList
|
||||||
[ ( "games", toJSON n )
|
[ ( "games", toJSON n )
|
||||||
, ( "mins_played", toJSON $ n + 1 )
|
, ( "mins_played", toJSON $ n + 1 )
|
||||||
, ( "goals_allowed", toJSON $ n + 2 )
|
, ( "goals_allowed", toJSON $ n + 2 )
|
||||||
, ( "wins", toJSON $ n + 3 )
|
, ( "shutouts", toJSON $ n + 3 )
|
||||||
, ( "losses", toJSON $ n + 4 )
|
, ( "wins", toJSON $ n + 4 )
|
||||||
, ( "ties", toJSON $ n + 5 )
|
, ( "losses", toJSON $ n + 5 )
|
||||||
|
, ( "ties", toJSON $ n + 6 )
|
||||||
]
|
]
|
||||||
|
|
||||||
gameStats :: Int -> GameStats
|
gameStats :: Int -> GameStats
|
||||||
|
@ -793,7 +795,7 @@ makeGoalieStats = GoalieStats
|
||||||
<*> makeNum
|
<*> makeNum
|
||||||
<*> makeNum
|
<*> makeNum
|
||||||
<*> makeNum
|
<*> makeNum
|
||||||
|
<*> makeNum
|
||||||
|
|
||||||
makeNum :: IO Int
|
makeNum :: IO Int
|
||||||
makeNum = randomRIO (1, 10)
|
makeNum = randomRIO (1, 10)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user