{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module IO.HTTP.Trello.ChecklistItem
( ChecklistItem
, checklistItemToSubTask
, checkItems
) where
import ClassyPrelude
import Control.Lens (makeLenses, (^.))
import qualified Data.Taskell.Subtask as ST (Subtask, new)
import IO.HTTP.Aeson (deriveFromJSON)
data ChecklistItem = ChecklistItem
{ _name :: Text
, _state :: Text
} deriving (Eq, Show)
$(deriveFromJSON ''ChecklistItem)
$(makeLenses ''ChecklistItem)
checklistItemToSubTask :: ChecklistItem -> ST.Subtask
checklistItemToSubTask cl = ST.new (cl ^. name) ((cl ^. state) == "complete")
newtype ChecklistWrapper = ChecklistWrapper
{ _checkItems :: [ChecklistItem]
} deriving (Eq, Show)
$(deriveFromJSON ''ChecklistWrapper)
$(makeLenses ''ChecklistWrapper)