{-# LANGUAGE TemplateHaskell #-}
module Taskell.IO.HTTP.Trello.ChecklistItem
( ChecklistItem
, checklistItemToSubTask
, checkItems
) where
import ClassyPrelude
import Control.Lens (makeLenses, (^.))
import qualified Taskell.Data.Subtask as ST (Subtask, new)
import Taskell.IO.HTTP.Aeson (deriveFromJSON)
data ChecklistItem = ChecklistItem
{ ChecklistItem -> Text
_name :: Text
, ChecklistItem -> Text
_state :: Text
} deriving (ChecklistItem -> ChecklistItem -> Bool
(ChecklistItem -> ChecklistItem -> Bool)
-> (ChecklistItem -> ChecklistItem -> Bool) -> Eq ChecklistItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChecklistItem -> ChecklistItem -> Bool
$c/= :: ChecklistItem -> ChecklistItem -> Bool
== :: ChecklistItem -> ChecklistItem -> Bool
$c== :: ChecklistItem -> ChecklistItem -> Bool
Eq, Int -> ChecklistItem -> ShowS
[ChecklistItem] -> ShowS
ChecklistItem -> String
(Int -> ChecklistItem -> ShowS)
-> (ChecklistItem -> String)
-> ([ChecklistItem] -> ShowS)
-> Show ChecklistItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChecklistItem] -> ShowS
$cshowList :: [ChecklistItem] -> ShowS
show :: ChecklistItem -> String
$cshow :: ChecklistItem -> String
showsPrec :: Int -> ChecklistItem -> ShowS
$cshowsPrec :: Int -> ChecklistItem -> ShowS
Show)
$(deriveFromJSON ''ChecklistItem)
$(makeLenses ''ChecklistItem)
checklistItemToSubTask :: ChecklistItem -> ST.Subtask
checklistItemToSubTask :: ChecklistItem -> Subtask
checklistItemToSubTask ChecklistItem
cl = Text -> Bool -> Subtask
ST.new (ChecklistItem
cl ChecklistItem -> Getting Text ChecklistItem Text -> Text
forall s a. s -> Getting a s a -> a
^. Getting Text ChecklistItem Text
Lens' ChecklistItem Text
name) ((ChecklistItem
cl ChecklistItem -> Getting Text ChecklistItem Text -> Text
forall s a. s -> Getting a s a -> a
^. Getting Text ChecklistItem Text
Lens' ChecklistItem Text
state) Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
"complete")
newtype ChecklistWrapper = ChecklistWrapper
{ ChecklistWrapper -> [ChecklistItem]
_checkItems :: [ChecklistItem]
} deriving (ChecklistWrapper -> ChecklistWrapper -> Bool
(ChecklistWrapper -> ChecklistWrapper -> Bool)
-> (ChecklistWrapper -> ChecklistWrapper -> Bool)
-> Eq ChecklistWrapper
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChecklistWrapper -> ChecklistWrapper -> Bool
$c/= :: ChecklistWrapper -> ChecklistWrapper -> Bool
== :: ChecklistWrapper -> ChecklistWrapper -> Bool
$c== :: ChecklistWrapper -> ChecklistWrapper -> Bool
Eq, Int -> ChecklistWrapper -> ShowS
[ChecklistWrapper] -> ShowS
ChecklistWrapper -> String
(Int -> ChecklistWrapper -> ShowS)
-> (ChecklistWrapper -> String)
-> ([ChecklistWrapper] -> ShowS)
-> Show ChecklistWrapper
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChecklistWrapper] -> ShowS
$cshowList :: [ChecklistWrapper] -> ShowS
show :: ChecklistWrapper -> String
$cshow :: ChecklistWrapper -> String
showsPrec :: Int -> ChecklistWrapper -> ShowS
$cshowsPrec :: Int -> ChecklistWrapper -> ShowS
Show)
$(deriveFromJSON ''ChecklistWrapper)
$(makeLenses ''ChecklistWrapper)