taskell-1.9.3.0: src/Taskell/IO/HTTP/GitHub/Card.hs
{-# LANGUAGE TemplateHaskell #-}
module Taskell.IO.HTTP.GitHub.Card
( MaybeCard(MaybeCard)
, maybeCardToTask
, content_url
) where
import ClassyPrelude
import Control.Lens (makeLenses, (^.))
import qualified Taskell.Data.Task as T (Task, new)
import Taskell.IO.HTTP.Aeson (deriveFromJSON)
import Taskell.IO.HTTP.GitHub.Utility (cleanUp)
data MaybeCard = MaybeCard
{ _note :: Maybe Text
, _content_url :: Maybe Text
} deriving (Eq, Show)
-- strip underscores from field labels
$(deriveFromJSON ''MaybeCard)
-- create lenses
$(makeLenses ''MaybeCard)
-- operations
maybeCardToTask :: MaybeCard -> Maybe T.Task
maybeCardToTask card = T.new . cleanUp <$> card ^. note