{-# LANGUAGE TemplateHaskell #-}
module Gitlab.Projects
(
GitlabCommitData(..)
, glAuthoredDate
, glAuthorEmail
, glAuthorName
, glCommittedDate
, glCommitId
, getCommitData
)
where
import Data.Yaml
import Gitlab.Core
import Lens.Micro.Platform
import RIO
import RIO.Time
data GitlabCommitData = GitlabCommitData {
_glAuthoredDate :: UTCTime,
_glAuthorEmail :: Text,
_glAuthorName :: Text,
_glCommittedDate :: UTCTime,
_glCommitterName :: Text,
_glCommitId :: Text
} deriving (Eq, Show)
$(makeLenses ''GitlabCommitData)
instance FromJSON GitlabCommitData where
parseJSON = withObject "GitlabCommitData" $ \v -> GitlabCommitData
<$> v .: "authored_date"
<*> v .: "author_email"
<*> v .: "author_name"
<*> v .: "committed_date"
<*> v .: "committer_name"
<*> v .: "id"
getCommitData :: MonadGitlab env m => Text -> Text -> m GitlabCommitData
getCommitData p r = gitlabRequest
"GET"
("/projects/" <> rParam p <> "/repository/commits/" <> rParam r)
mempty