diff --git a/src/Model/Types/Lms.hs b/src/Model/Types/Lms.hs index 13d2ae183..59790590c 100644 --- a/src/Model/Types/Lms.hs +++ b/src/Model/Types/Lms.hs @@ -39,6 +39,7 @@ derivePersistFieldJSON ''LmsStatus -- LMS Interface requires Bool to be encoded by 0 or 1 only +{- data LmsBool = LmsUnset | LmsSet deriving (Eq, Ord, Read, Show, Generic, Typeable, NFData) @@ -61,3 +62,20 @@ instance Csv.FromField LmsBool where | i == "0" = pure LmsUnset | i == "1" = pure LmsSet | otherwise = empty +-} + +newtype LmsBool = LmsBool { lms2bool :: Bool } + deriving (Eq, Ord, Read, Show, Generic, Typeable) + +_lmsBool :: Iso' Bool LmsBool +_lmsBool = iso LmsBool lms2bool + +instance Csv.ToField LmsBool where + toField (LmsBool False) = "0" + toField (LmsBool True ) = "1" + +instance Csv.FromField LmsBool where + parseField i + | i == "0" = pure $ LmsBool False + | i == "1" = pure $ LmsBool True + | otherwise = empty