From 7b8e566f65aae484e4d6e077f26009ae4fe821ac Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Thu, 24 Feb 2022 14:00:07 +0100 Subject: [PATCH] refactor(lms): encode bool by 0 and 1 in lms csv export/import --- src/Model/Types/Lms.hs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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