{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module Gerrit.Data.Event
(
EventType (..),
Event (..),
User (..),
PatchSet (..),
Change (..),
Ref (..),
AssigneeChanged (..),
ChangeAbandoned (..),
ChangeDeleted (..),
ChangeMerged (..),
ChangeRestored (..),
CommentAdded (..),
HashtagsChanged (..),
ProjectCreated (..),
PatchsetCreated (..),
RefUpdated (..),
ReviewerAdded (..),
ReviewerDeleted (..),
TopicChanged (..),
WorkInProgressStateChanged (..),
PrivateStateChanged (..),
VoteDeleted (..),
getChange,
getPatchSet,
getUser,
getCreatedOn,
getEventType,
eventName,
)
where
import Control.Monad (mzero)
import Data.Aeson
( FromJSON (..),
Options (fieldLabelModifier),
Value (Object, String),
defaultOptions,
genericParseJSON,
(.:),
)
import Data.Char (toLower)
import Data.Text (Text)
import qualified Data.Text as Text
import GHC.Generics (Generic)
import GHC.Int (Int64)
aesonOption :: Text -> Options
aesonOption :: Text -> Options
aesonOption Text
prefix = Options
defaultOptions {fieldLabelModifier :: String -> String
fieldLabelModifier = String -> String
recordToJson}
where
recordToJson :: String -> String
recordToJson = String -> String
updateCase forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Int -> [a] -> [a]
drop (Text -> Int
Text.length Text
prefix)
updateCase :: String -> String
updateCase [] = []
updateCase (Char
x : String
xs) = Char -> Char
toLower Char
x forall a. a -> [a] -> [a]
: String
xs
data User = User
{ User -> Maybe Text
userName :: Maybe Text,
User -> Maybe Text
userEmail :: Maybe Text,
User -> Maybe Text
userUsername :: Maybe Text
}
deriving (Int -> User -> String -> String
[User] -> String -> String
User -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [User] -> String -> String
$cshowList :: [User] -> String -> String
show :: User -> String
$cshow :: User -> String
showsPrec :: Int -> User -> String -> String
$cshowsPrec :: Int -> User -> String -> String
Show, User -> User -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: User -> User -> Bool
$c/= :: User -> User -> Bool
== :: User -> User -> Bool
$c== :: User -> User -> Bool
Eq, forall x. Rep User x -> User
forall x. User -> Rep User x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep User x -> User
$cfrom :: forall x. User -> Rep User x
Generic)
instance FromJSON User where
parseJSON :: Value -> Parser User
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"user"
data PatchSet = PatchSet
{ PatchSet -> Int
patchSetNumber :: Int,
PatchSet -> Text
patchSetRef :: Text,
PatchSet -> User
patchSetUploader :: User,
PatchSet -> User
patchsetAuthor :: User
}
deriving (Int -> PatchSet -> String -> String
[PatchSet] -> String -> String
PatchSet -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PatchSet] -> String -> String
$cshowList :: [PatchSet] -> String -> String
show :: PatchSet -> String
$cshow :: PatchSet -> String
showsPrec :: Int -> PatchSet -> String -> String
$cshowsPrec :: Int -> PatchSet -> String -> String
Show, PatchSet -> PatchSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PatchSet -> PatchSet -> Bool
$c/= :: PatchSet -> PatchSet -> Bool
== :: PatchSet -> PatchSet -> Bool
$c== :: PatchSet -> PatchSet -> Bool
Eq, forall x. Rep PatchSet x -> PatchSet
forall x. PatchSet -> Rep PatchSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PatchSet x -> PatchSet
$cfrom :: forall x. PatchSet -> Rep PatchSet x
Generic)
instance FromJSON PatchSet where
parseJSON :: Value -> Parser PatchSet
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"patchSet"
data Change = Change
{ Change -> Text
changeProject :: Text,
Change -> Text
changeBranch :: Text,
Change -> Text
changeSubject :: Text,
Change -> Int
changeNumber :: Int,
Change -> Text
changeUrl :: Text,
Change -> User
changeOwner :: User,
Change -> Maybe Bool
changeWip :: Maybe Bool,
Change -> Maybe Text
changeTopic :: Maybe Text,
Change -> Int64
changeCreatedOn :: Int64
}
deriving (Int -> Change -> String -> String
[Change] -> String -> String
Change -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [Change] -> String -> String
$cshowList :: [Change] -> String -> String
show :: Change -> String
$cshow :: Change -> String
showsPrec :: Int -> Change -> String -> String
$cshowsPrec :: Int -> Change -> String -> String
Show, Change -> Change -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Change -> Change -> Bool
$c/= :: Change -> Change -> Bool
== :: Change -> Change -> Bool
$c== :: Change -> Change -> Bool
Eq, forall x. Rep Change x -> Change
forall x. Change -> Rep Change x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Change x -> Change
$cfrom :: forall x. Change -> Rep Change x
Generic)
instance FromJSON Change where
parseJSON :: Value -> Parser Change
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"change"
data Ref = Ref
{ Ref -> Text
refOldRev :: Text,
Ref -> Text
refNewRev :: Text,
Ref -> Text
refRefName :: Text,
Ref -> Text
refProject :: Text
}
deriving (Int -> Ref -> String -> String
[Ref] -> String -> String
Ref -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [Ref] -> String -> String
$cshowList :: [Ref] -> String -> String
show :: Ref -> String
$cshow :: Ref -> String
showsPrec :: Int -> Ref -> String -> String
$cshowsPrec :: Int -> Ref -> String -> String
Show, Ref -> Ref -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Ref -> Ref -> Bool
$c/= :: Ref -> Ref -> Bool
== :: Ref -> Ref -> Bool
$c== :: Ref -> Ref -> Bool
Eq, forall x. Rep Ref x -> Ref
forall x. Ref -> Rep Ref x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Ref x -> Ref
$cfrom :: forall x. Ref -> Rep Ref x
Generic)
instance FromJSON Ref where
parseJSON :: Value -> Parser Ref
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"ref"
data AssigneeChanged = AssigneeChanged
{ AssigneeChanged -> Change
assigneeChangedChange :: Change,
AssigneeChanged -> User
assigneeChangedChanger :: User,
AssigneeChanged -> Int64
assigneeChangedEventCreatedOn :: Int64
}
deriving (Int -> AssigneeChanged -> String -> String
[AssigneeChanged] -> String -> String
AssigneeChanged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [AssigneeChanged] -> String -> String
$cshowList :: [AssigneeChanged] -> String -> String
show :: AssigneeChanged -> String
$cshow :: AssigneeChanged -> String
showsPrec :: Int -> AssigneeChanged -> String -> String
$cshowsPrec :: Int -> AssigneeChanged -> String -> String
Show, AssigneeChanged -> AssigneeChanged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssigneeChanged -> AssigneeChanged -> Bool
$c/= :: AssigneeChanged -> AssigneeChanged -> Bool
== :: AssigneeChanged -> AssigneeChanged -> Bool
$c== :: AssigneeChanged -> AssigneeChanged -> Bool
Eq, forall x. Rep AssigneeChanged x -> AssigneeChanged
forall x. AssigneeChanged -> Rep AssigneeChanged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssigneeChanged x -> AssigneeChanged
$cfrom :: forall x. AssigneeChanged -> Rep AssigneeChanged x
Generic)
data ChangeAbandoned = ChangeAbandoned
{ ChangeAbandoned -> Text
changeAbandonedProject :: Text,
ChangeAbandoned -> User
changeAbandonedAbandoner :: User,
ChangeAbandoned -> Change
changeAbandonedChange :: Change,
ChangeAbandoned -> PatchSet
changeAbandonedPatchSet :: PatchSet,
ChangeAbandoned -> Maybe Text
changeAbandonedReason :: Maybe Text,
ChangeAbandoned -> Int64
changeAbandonedEventCreatedOn :: Int64
}
deriving (Int -> ChangeAbandoned -> String -> String
[ChangeAbandoned] -> String -> String
ChangeAbandoned -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ChangeAbandoned] -> String -> String
$cshowList :: [ChangeAbandoned] -> String -> String
show :: ChangeAbandoned -> String
$cshow :: ChangeAbandoned -> String
showsPrec :: Int -> ChangeAbandoned -> String -> String
$cshowsPrec :: Int -> ChangeAbandoned -> String -> String
Show, ChangeAbandoned -> ChangeAbandoned -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChangeAbandoned -> ChangeAbandoned -> Bool
$c/= :: ChangeAbandoned -> ChangeAbandoned -> Bool
== :: ChangeAbandoned -> ChangeAbandoned -> Bool
$c== :: ChangeAbandoned -> ChangeAbandoned -> Bool
Eq, forall x. Rep ChangeAbandoned x -> ChangeAbandoned
forall x. ChangeAbandoned -> Rep ChangeAbandoned x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChangeAbandoned x -> ChangeAbandoned
$cfrom :: forall x. ChangeAbandoned -> Rep ChangeAbandoned x
Generic)
data ChangeDeleted = ChangeDeleted
{ ChangeDeleted -> Change
changeDeletedChange :: Change,
ChangeDeleted -> User
changeDeletedDeleter :: User
}
deriving (Int -> ChangeDeleted -> String -> String
[ChangeDeleted] -> String -> String
ChangeDeleted -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ChangeDeleted] -> String -> String
$cshowList :: [ChangeDeleted] -> String -> String
show :: ChangeDeleted -> String
$cshow :: ChangeDeleted -> String
showsPrec :: Int -> ChangeDeleted -> String -> String
$cshowsPrec :: Int -> ChangeDeleted -> String -> String
Show, ChangeDeleted -> ChangeDeleted -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChangeDeleted -> ChangeDeleted -> Bool
$c/= :: ChangeDeleted -> ChangeDeleted -> Bool
== :: ChangeDeleted -> ChangeDeleted -> Bool
$c== :: ChangeDeleted -> ChangeDeleted -> Bool
Eq, forall x. Rep ChangeDeleted x -> ChangeDeleted
forall x. ChangeDeleted -> Rep ChangeDeleted x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChangeDeleted x -> ChangeDeleted
$cfrom :: forall x. ChangeDeleted -> Rep ChangeDeleted x
Generic)
data ChangeMerged = ChangeMerged
{ ChangeMerged -> Text
changeMergedProject :: Text,
ChangeMerged -> User
changeMergedSubmitter :: User,
ChangeMerged -> Change
changeMergedChange :: Change,
ChangeMerged -> PatchSet
changeMergedPatchSet :: PatchSet,
ChangeMerged -> Int64
changeMergedEventCreatedOn :: Int64
}
deriving (Int -> ChangeMerged -> String -> String
[ChangeMerged] -> String -> String
ChangeMerged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ChangeMerged] -> String -> String
$cshowList :: [ChangeMerged] -> String -> String
show :: ChangeMerged -> String
$cshow :: ChangeMerged -> String
showsPrec :: Int -> ChangeMerged -> String -> String
$cshowsPrec :: Int -> ChangeMerged -> String -> String
Show, ChangeMerged -> ChangeMerged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChangeMerged -> ChangeMerged -> Bool
$c/= :: ChangeMerged -> ChangeMerged -> Bool
== :: ChangeMerged -> ChangeMerged -> Bool
$c== :: ChangeMerged -> ChangeMerged -> Bool
Eq, forall x. Rep ChangeMerged x -> ChangeMerged
forall x. ChangeMerged -> Rep ChangeMerged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChangeMerged x -> ChangeMerged
$cfrom :: forall x. ChangeMerged -> Rep ChangeMerged x
Generic)
data ChangeRestored = ChangeRestored
{ ChangeRestored -> Change
changeRestoredChange :: Change,
ChangeRestored -> PatchSet
changeRestoredPatchSet :: PatchSet,
ChangeRestored -> User
changeRestoredRestorer :: User,
ChangeRestored -> Maybe Text
changeRestoredReason :: Maybe Text,
ChangeRestored -> Int64
changeRestoredEventCreatedOn :: Int64
}
deriving (Int -> ChangeRestored -> String -> String
[ChangeRestored] -> String -> String
ChangeRestored -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ChangeRestored] -> String -> String
$cshowList :: [ChangeRestored] -> String -> String
show :: ChangeRestored -> String
$cshow :: ChangeRestored -> String
showsPrec :: Int -> ChangeRestored -> String -> String
$cshowsPrec :: Int -> ChangeRestored -> String -> String
Show, ChangeRestored -> ChangeRestored -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChangeRestored -> ChangeRestored -> Bool
$c/= :: ChangeRestored -> ChangeRestored -> Bool
== :: ChangeRestored -> ChangeRestored -> Bool
$c== :: ChangeRestored -> ChangeRestored -> Bool
Eq, forall x. Rep ChangeRestored x -> ChangeRestored
forall x. ChangeRestored -> Rep ChangeRestored x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChangeRestored x -> ChangeRestored
$cfrom :: forall x. ChangeRestored -> Rep ChangeRestored x
Generic)
data =
{ :: Change,
:: PatchSet,
:: User,
:: Int64
}
deriving (Int -> CommentAdded -> String -> String
[CommentAdded] -> String -> String
CommentAdded -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [CommentAdded] -> String -> String
$cshowList :: [CommentAdded] -> String -> String
show :: CommentAdded -> String
$cshow :: CommentAdded -> String
showsPrec :: Int -> CommentAdded -> String -> String
$cshowsPrec :: Int -> CommentAdded -> String -> String
Show, CommentAdded -> CommentAdded -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CommentAdded -> CommentAdded -> Bool
$c/= :: CommentAdded -> CommentAdded -> Bool
== :: CommentAdded -> CommentAdded -> Bool
$c== :: CommentAdded -> CommentAdded -> Bool
Eq, forall x. Rep CommentAdded x -> CommentAdded
forall x. CommentAdded -> Rep CommentAdded x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CommentAdded x -> CommentAdded
$cfrom :: forall x. CommentAdded -> Rep CommentAdded x
Generic)
data HashtagsChanged = HashtagsChanged
{ HashtagsChanged -> Change
hashtagsChangedChange :: Change,
HashtagsChanged -> User
hashtagsChangedEditor :: User,
HashtagsChanged -> Int64
hashtagsChangedEventCreatedOn :: Int64
}
deriving (Int -> HashtagsChanged -> String -> String
[HashtagsChanged] -> String -> String
HashtagsChanged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [HashtagsChanged] -> String -> String
$cshowList :: [HashtagsChanged] -> String -> String
show :: HashtagsChanged -> String
$cshow :: HashtagsChanged -> String
showsPrec :: Int -> HashtagsChanged -> String -> String
$cshowsPrec :: Int -> HashtagsChanged -> String -> String
Show, HashtagsChanged -> HashtagsChanged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HashtagsChanged -> HashtagsChanged -> Bool
$c/= :: HashtagsChanged -> HashtagsChanged -> Bool
== :: HashtagsChanged -> HashtagsChanged -> Bool
$c== :: HashtagsChanged -> HashtagsChanged -> Bool
Eq, forall x. Rep HashtagsChanged x -> HashtagsChanged
forall x. HashtagsChanged -> Rep HashtagsChanged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HashtagsChanged x -> HashtagsChanged
$cfrom :: forall x. HashtagsChanged -> Rep HashtagsChanged x
Generic)
data ProjectCreated = ProjectCreated
{ ProjectCreated -> Text
projectCreatedProjectName :: Text,
ProjectCreated -> Text
projectCreatedHeadName :: Text,
ProjectCreated -> Int64
projectCreatedEventCreatedOn :: Int64
}
deriving (Int -> ProjectCreated -> String -> String
[ProjectCreated] -> String -> String
ProjectCreated -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ProjectCreated] -> String -> String
$cshowList :: [ProjectCreated] -> String -> String
show :: ProjectCreated -> String
$cshow :: ProjectCreated -> String
showsPrec :: Int -> ProjectCreated -> String -> String
$cshowsPrec :: Int -> ProjectCreated -> String -> String
Show, ProjectCreated -> ProjectCreated -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectCreated -> ProjectCreated -> Bool
$c/= :: ProjectCreated -> ProjectCreated -> Bool
== :: ProjectCreated -> ProjectCreated -> Bool
$c== :: ProjectCreated -> ProjectCreated -> Bool
Eq, forall x. Rep ProjectCreated x -> ProjectCreated
forall x. ProjectCreated -> Rep ProjectCreated x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectCreated x -> ProjectCreated
$cfrom :: forall x. ProjectCreated -> Rep ProjectCreated x
Generic)
data PatchsetCreated = PatchsetCreated
{ PatchsetCreated -> User
patchsetCreatedUploader :: User,
PatchsetCreated -> Change
patchsetCreatedChange :: Change,
PatchsetCreated -> PatchSet
patchsetCreatedPatchSet :: PatchSet,
PatchsetCreated -> Int64
patchsetCreatedEventCreatedOn :: Int64
}
deriving (Int -> PatchsetCreated -> String -> String
[PatchsetCreated] -> String -> String
PatchsetCreated -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PatchsetCreated] -> String -> String
$cshowList :: [PatchsetCreated] -> String -> String
show :: PatchsetCreated -> String
$cshow :: PatchsetCreated -> String
showsPrec :: Int -> PatchsetCreated -> String -> String
$cshowsPrec :: Int -> PatchsetCreated -> String -> String
Show, PatchsetCreated -> PatchsetCreated -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PatchsetCreated -> PatchsetCreated -> Bool
$c/= :: PatchsetCreated -> PatchsetCreated -> Bool
== :: PatchsetCreated -> PatchsetCreated -> Bool
$c== :: PatchsetCreated -> PatchsetCreated -> Bool
Eq, forall x. Rep PatchsetCreated x -> PatchsetCreated
forall x. PatchsetCreated -> Rep PatchsetCreated x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PatchsetCreated x -> PatchsetCreated
$cfrom :: forall x. PatchsetCreated -> Rep PatchsetCreated x
Generic)
data RefUpdated = RefUpdated
{ RefUpdated -> User
refUpdatedSubmitter :: User,
RefUpdated -> Ref
refUpdatedRefUpdate :: Ref,
RefUpdated -> Int64
refUpdatedEventCreatedOn :: Int64
}
deriving (Int -> RefUpdated -> String -> String
[RefUpdated] -> String -> String
RefUpdated -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [RefUpdated] -> String -> String
$cshowList :: [RefUpdated] -> String -> String
show :: RefUpdated -> String
$cshow :: RefUpdated -> String
showsPrec :: Int -> RefUpdated -> String -> String
$cshowsPrec :: Int -> RefUpdated -> String -> String
Show, RefUpdated -> RefUpdated -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RefUpdated -> RefUpdated -> Bool
$c/= :: RefUpdated -> RefUpdated -> Bool
== :: RefUpdated -> RefUpdated -> Bool
$c== :: RefUpdated -> RefUpdated -> Bool
Eq, forall x. Rep RefUpdated x -> RefUpdated
forall x. RefUpdated -> Rep RefUpdated x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RefUpdated x -> RefUpdated
$cfrom :: forall x. RefUpdated -> Rep RefUpdated x
Generic)
data ReviewerAdded = ReviewerAdded
{ ReviewerAdded -> Change
reviewerAddedChange :: Change,
ReviewerAdded -> PatchSet
reviewerAddedPatchSet :: PatchSet,
ReviewerAdded -> User
reviewerAddedAdder :: User,
ReviewerAdded -> Int64
reviewerAddedEventCreatedOn :: Int64
}
deriving (Int -> ReviewerAdded -> String -> String
[ReviewerAdded] -> String -> String
ReviewerAdded -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ReviewerAdded] -> String -> String
$cshowList :: [ReviewerAdded] -> String -> String
show :: ReviewerAdded -> String
$cshow :: ReviewerAdded -> String
showsPrec :: Int -> ReviewerAdded -> String -> String
$cshowsPrec :: Int -> ReviewerAdded -> String -> String
Show, ReviewerAdded -> ReviewerAdded -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReviewerAdded -> ReviewerAdded -> Bool
$c/= :: ReviewerAdded -> ReviewerAdded -> Bool
== :: ReviewerAdded -> ReviewerAdded -> Bool
$c== :: ReviewerAdded -> ReviewerAdded -> Bool
Eq, forall x. Rep ReviewerAdded x -> ReviewerAdded
forall x. ReviewerAdded -> Rep ReviewerAdded x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReviewerAdded x -> ReviewerAdded
$cfrom :: forall x. ReviewerAdded -> Rep ReviewerAdded x
Generic)
data ReviewerDeleted = ReviewerDeleted
{ ReviewerDeleted -> Change
reviewerDeletedChange :: Change,
ReviewerDeleted -> PatchSet
reviewerDeletedPatchSet :: PatchSet,
ReviewerDeleted -> User
reviewerDeletedRemover :: User,
ReviewerDeleted -> Int64
reviewerDeletedEventCreatedOn :: Int64
}
deriving (Int -> ReviewerDeleted -> String -> String
[ReviewerDeleted] -> String -> String
ReviewerDeleted -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [ReviewerDeleted] -> String -> String
$cshowList :: [ReviewerDeleted] -> String -> String
show :: ReviewerDeleted -> String
$cshow :: ReviewerDeleted -> String
showsPrec :: Int -> ReviewerDeleted -> String -> String
$cshowsPrec :: Int -> ReviewerDeleted -> String -> String
Show, ReviewerDeleted -> ReviewerDeleted -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReviewerDeleted -> ReviewerDeleted -> Bool
$c/= :: ReviewerDeleted -> ReviewerDeleted -> Bool
== :: ReviewerDeleted -> ReviewerDeleted -> Bool
$c== :: ReviewerDeleted -> ReviewerDeleted -> Bool
Eq, forall x. Rep ReviewerDeleted x -> ReviewerDeleted
forall x. ReviewerDeleted -> Rep ReviewerDeleted x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReviewerDeleted x -> ReviewerDeleted
$cfrom :: forall x. ReviewerDeleted -> Rep ReviewerDeleted x
Generic)
data TopicChanged = TopicChanged
{ TopicChanged -> Change
topicChangedChange :: Change,
TopicChanged -> User
topicChangedChanger :: User,
TopicChanged -> Text
topicChangedOldTopic :: Text,
TopicChanged -> Int64
topicChangedEventCreatedOn :: Int64
}
deriving (Int -> TopicChanged -> String -> String
[TopicChanged] -> String -> String
TopicChanged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [TopicChanged] -> String -> String
$cshowList :: [TopicChanged] -> String -> String
show :: TopicChanged -> String
$cshow :: TopicChanged -> String
showsPrec :: Int -> TopicChanged -> String -> String
$cshowsPrec :: Int -> TopicChanged -> String -> String
Show, TopicChanged -> TopicChanged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TopicChanged -> TopicChanged -> Bool
$c/= :: TopicChanged -> TopicChanged -> Bool
== :: TopicChanged -> TopicChanged -> Bool
$c== :: TopicChanged -> TopicChanged -> Bool
Eq, forall x. Rep TopicChanged x -> TopicChanged
forall x. TopicChanged -> Rep TopicChanged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TopicChanged x -> TopicChanged
$cfrom :: forall x. TopicChanged -> Rep TopicChanged x
Generic)
data WorkInProgressStateChanged = WorkInProgressStateChanged
{ WorkInProgressStateChanged -> Change
workInProgressStateChangedChange :: Change,
WorkInProgressStateChanged -> PatchSet
workInProgressStateChangedPatchSet :: PatchSet,
WorkInProgressStateChanged -> User
workInProgressStateChangedChanger :: User,
WorkInProgressStateChanged -> Int64
workInProgressStateChangedEventCreatedOn :: Int64
}
deriving (Int -> WorkInProgressStateChanged -> String -> String
[WorkInProgressStateChanged] -> String -> String
WorkInProgressStateChanged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [WorkInProgressStateChanged] -> String -> String
$cshowList :: [WorkInProgressStateChanged] -> String -> String
show :: WorkInProgressStateChanged -> String
$cshow :: WorkInProgressStateChanged -> String
showsPrec :: Int -> WorkInProgressStateChanged -> String -> String
$cshowsPrec :: Int -> WorkInProgressStateChanged -> String -> String
Show, WorkInProgressStateChanged -> WorkInProgressStateChanged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkInProgressStateChanged -> WorkInProgressStateChanged -> Bool
$c/= :: WorkInProgressStateChanged -> WorkInProgressStateChanged -> Bool
== :: WorkInProgressStateChanged -> WorkInProgressStateChanged -> Bool
$c== :: WorkInProgressStateChanged -> WorkInProgressStateChanged -> Bool
Eq, forall x.
Rep WorkInProgressStateChanged x -> WorkInProgressStateChanged
forall x.
WorkInProgressStateChanged -> Rep WorkInProgressStateChanged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep WorkInProgressStateChanged x -> WorkInProgressStateChanged
$cfrom :: forall x.
WorkInProgressStateChanged -> Rep WorkInProgressStateChanged x
Generic)
data PrivateStateChanged = PrivateStateChanged
{ PrivateStateChanged -> Change
privateStateChangedChange :: Change,
PrivateStateChanged -> PatchSet
privateStateChangedPatchSet :: PatchSet,
PrivateStateChanged -> User
privateStateChangedChanger :: User,
PrivateStateChanged -> Int64
privateStateChangedChangedEventCreatedOn :: Int64
}
deriving (Int -> PrivateStateChanged -> String -> String
[PrivateStateChanged] -> String -> String
PrivateStateChanged -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PrivateStateChanged] -> String -> String
$cshowList :: [PrivateStateChanged] -> String -> String
show :: PrivateStateChanged -> String
$cshow :: PrivateStateChanged -> String
showsPrec :: Int -> PrivateStateChanged -> String -> String
$cshowsPrec :: Int -> PrivateStateChanged -> String -> String
Show, PrivateStateChanged -> PrivateStateChanged -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PrivateStateChanged -> PrivateStateChanged -> Bool
$c/= :: PrivateStateChanged -> PrivateStateChanged -> Bool
== :: PrivateStateChanged -> PrivateStateChanged -> Bool
$c== :: PrivateStateChanged -> PrivateStateChanged -> Bool
Eq, forall x. Rep PrivateStateChanged x -> PrivateStateChanged
forall x. PrivateStateChanged -> Rep PrivateStateChanged x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PrivateStateChanged x -> PrivateStateChanged
$cfrom :: forall x. PrivateStateChanged -> Rep PrivateStateChanged x
Generic)
data VoteDeleted = VoteDeleted
{ VoteDeleted -> Change
voteDeletedChange :: Change,
VoteDeleted -> PatchSet
voteDeletedPatchSet :: PatchSet,
VoteDeleted -> User
voteDeletedRemover :: User
}
deriving (Int -> VoteDeleted -> String -> String
[VoteDeleted] -> String -> String
VoteDeleted -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [VoteDeleted] -> String -> String
$cshowList :: [VoteDeleted] -> String -> String
show :: VoteDeleted -> String
$cshow :: VoteDeleted -> String
showsPrec :: Int -> VoteDeleted -> String -> String
$cshowsPrec :: Int -> VoteDeleted -> String -> String
Show, VoteDeleted -> VoteDeleted -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VoteDeleted -> VoteDeleted -> Bool
$c/= :: VoteDeleted -> VoteDeleted -> Bool
== :: VoteDeleted -> VoteDeleted -> Bool
$c== :: VoteDeleted -> VoteDeleted -> Bool
Eq, forall x. Rep VoteDeleted x -> VoteDeleted
forall x. VoteDeleted -> Rep VoteDeleted x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VoteDeleted x -> VoteDeleted
$cfrom :: forall x. VoteDeleted -> Rep VoteDeleted x
Generic)
instance FromJSON AssigneeChanged where
parseJSON :: Value -> Parser AssigneeChanged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"assigneeChanged"
instance FromJSON ChangeAbandoned where
parseJSON :: Value -> Parser ChangeAbandoned
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"changeAbandoned"
instance FromJSON ChangeDeleted where
parseJSON :: Value -> Parser ChangeDeleted
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"changeDeleted"
instance FromJSON ChangeMerged where
parseJSON :: Value -> Parser ChangeMerged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"changeMerged"
instance FromJSON ChangeRestored where
parseJSON :: Value -> Parser ChangeRestored
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"changeRestored"
instance FromJSON CommentAdded where
parseJSON :: Value -> Parser CommentAdded
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"commentAdded"
instance FromJSON HashtagsChanged where
parseJSON :: Value -> Parser HashtagsChanged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"hashtagsChanged"
instance FromJSON ProjectCreated where
parseJSON :: Value -> Parser ProjectCreated
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"projectCreated"
instance FromJSON PatchsetCreated where
parseJSON :: Value -> Parser PatchsetCreated
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"patchsetCreated"
instance FromJSON RefUpdated where
parseJSON :: Value -> Parser RefUpdated
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"refUpdated"
instance FromJSON ReviewerAdded where
parseJSON :: Value -> Parser ReviewerAdded
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"reviewerAdded"
instance FromJSON ReviewerDeleted where
parseJSON :: Value -> Parser ReviewerDeleted
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"reviewerDeleted"
instance FromJSON TopicChanged where
parseJSON :: Value -> Parser TopicChanged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"topicChanged"
instance FromJSON WorkInProgressStateChanged where
parseJSON :: Value -> Parser WorkInProgressStateChanged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"workInProgressStateChanged"
instance FromJSON PrivateStateChanged where
parseJSON :: Value -> Parser PrivateStateChanged
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"privateStateChanged"
instance FromJSON VoteDeleted where
parseJSON :: Value -> Parser VoteDeleted
parseJSON = forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON forall a b. (a -> b) -> a -> b
$ Text -> Options
aesonOption Text
"voteDeleted"
data EventType
= AssigneeChangedEvent
| ChangeAbandonedEvent
| ChangeDeletedEvent
| ChangeMergedEvent
| ChangeRestoredEvent
|
| DroppedOutputEvent
| HashtagsChangedEvent
| ProjectCreatedEvent
| PatchsetCreatedEvent
| RefUpdatedEvent
| ReviewerAddedEvent
| ReviewerDeletedEvent
| TopicChangedEvent
| WorkInProgressStateChangedEvent
| PrivateStateChangedEvent
| VoteDeletedEvent
deriving (Int -> EventType -> String -> String
[EventType] -> String -> String
EventType -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [EventType] -> String -> String
$cshowList :: [EventType] -> String -> String
show :: EventType -> String
$cshow :: EventType -> String
showsPrec :: Int -> EventType -> String -> String
$cshowsPrec :: Int -> EventType -> String -> String
Show, EventType -> EventType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EventType -> EventType -> Bool
$c/= :: EventType -> EventType -> Bool
== :: EventType -> EventType -> Bool
$c== :: EventType -> EventType -> Bool
Eq)
instance FromJSON EventType where
parseJSON :: Value -> Parser EventType
parseJSON (String Text
v) = case Text
v of
Text
"assignee-changed" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
AssigneeChangedEvent
Text
"change-abandoned" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ChangeAbandonedEvent
Text
"change-deleted" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ChangeDeletedEvent
Text
"change-merged" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ChangeMergedEvent
Text
"change-restored" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ChangeRestoredEvent
Text
"comment-added" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
CommentAddedEvent
Text
"dropped-output" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
DroppedOutputEvent
Text
"hashtags-changed" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
HashtagsChangedEvent
Text
"project-created" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ProjectCreatedEvent
Text
"patchset-created" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
PatchsetCreatedEvent
Text
"ref-updated" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
RefUpdatedEvent
Text
"reviewer-added" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ReviewerAddedEvent
Text
"reviewer-deleted" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
ReviewerDeletedEvent
Text
"topic-changed" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
TopicChangedEvent
Text
"wip-state-changed" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
WorkInProgressStateChangedEvent
Text
"private-state-changed" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
PrivateStateChangedEvent
Text
"vote-deleted" -> forall (f :: * -> *) a. Applicative f => a -> f a
pure EventType
VoteDeletedEvent
Text
_ -> forall (m :: * -> *) a. MonadPlus m => m a
mzero
parseJSON Value
_ = forall (m :: * -> *) a. MonadPlus m => m a
mzero
data Event
= EventAssigneeChanged AssigneeChanged
| EventChangeAbandoned ChangeAbandoned
| EventChangeDeleted ChangeDeleted
| EventChangeMerged ChangeMerged
| EventChangeRestored ChangeRestored
| CommentAdded
| EventDroppedOutput
| EventHashtagsChanged HashtagsChanged
| EventProjectCreated ProjectCreated
| EventPatchsetCreated PatchsetCreated
| EventRefUpdated RefUpdated
| EventReviewerAdded ReviewerAdded
| EventReviewerDeleted ReviewerDeleted
| EventTopicChanged TopicChanged
| EventWorkInProgressStateChanged WorkInProgressStateChanged
| EventPrivateStateChanged PrivateStateChanged
| EventVoteDeleted VoteDeleted
deriving (Int -> Event -> String -> String
[Event] -> String -> String
Event -> String
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [Event] -> String -> String
$cshowList :: [Event] -> String -> String
show :: Event -> String
$cshow :: Event -> String
showsPrec :: Int -> Event -> String -> String
$cshowsPrec :: Int -> Event -> String -> String
Show, Event -> Event -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Event -> Event -> Bool
$c/= :: Event -> Event -> Bool
== :: Event -> Event -> Bool
$c== :: Event -> Event -> Bool
Eq)
instance FromJSON Event where
parseJSON :: Value -> Parser Event
parseJSON o :: Value
o@(Object Object
v) = do
EventType
eType <- Object
v forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"type"
case EventType
eType of
EventType
AssigneeChangedEvent -> AssigneeChanged -> Event
EventAssigneeChanged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ChangeAbandonedEvent -> ChangeAbandoned -> Event
EventChangeAbandoned forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ChangeDeletedEvent -> ChangeDeleted -> Event
EventChangeDeleted forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ChangeMergedEvent -> ChangeMerged -> Event
EventChangeMerged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ChangeRestoredEvent -> ChangeRestored -> Event
EventChangeRestored forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
CommentAddedEvent -> CommentAdded -> Event
EventCommentAdded forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
DroppedOutputEvent -> forall (f :: * -> *) a. Applicative f => a -> f a
pure Event
EventDroppedOutput
EventType
HashtagsChangedEvent -> HashtagsChanged -> Event
EventHashtagsChanged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ProjectCreatedEvent -> ProjectCreated -> Event
EventProjectCreated forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
PatchsetCreatedEvent -> PatchsetCreated -> Event
EventPatchsetCreated forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
RefUpdatedEvent -> RefUpdated -> Event
EventRefUpdated forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ReviewerAddedEvent -> ReviewerAdded -> Event
EventReviewerAdded forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
ReviewerDeletedEvent -> ReviewerDeleted -> Event
EventReviewerDeleted forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
TopicChangedEvent -> TopicChanged -> Event
EventTopicChanged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
WorkInProgressStateChangedEvent -> WorkInProgressStateChanged -> Event
EventWorkInProgressStateChanged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
PrivateStateChangedEvent -> PrivateStateChanged -> Event
EventPrivateStateChanged forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
EventType
VoteDeletedEvent -> VoteDeleted -> Event
EventVoteDeleted forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a. FromJSON a => Value -> Parser a
parseJSON Value
o
parseJSON Value
_ = forall (m :: * -> *) a. MonadPlus m => m a
mzero
getChange :: Event -> Maybe Change
getChange :: Event -> Maybe Change
getChange Event
event = case Event
event of
EventAssigneeChanged AssigneeChanged {Int64
Change
User
assigneeChangedEventCreatedOn :: Int64
assigneeChangedChanger :: User
assigneeChangedChange :: Change
assigneeChangedEventCreatedOn :: AssigneeChanged -> Int64
assigneeChangedChanger :: AssigneeChanged -> User
assigneeChangedChange :: AssigneeChanged -> Change
..} -> forall a. a -> Maybe a
Just Change
assigneeChangedChange
EventChangeAbandoned ChangeAbandoned {Int64
Maybe Text
Text
Change
PatchSet
User
changeAbandonedEventCreatedOn :: Int64
changeAbandonedReason :: Maybe Text
changeAbandonedPatchSet :: PatchSet
changeAbandonedChange :: Change
changeAbandonedAbandoner :: User
changeAbandonedProject :: Text
changeAbandonedEventCreatedOn :: ChangeAbandoned -> Int64
changeAbandonedReason :: ChangeAbandoned -> Maybe Text
changeAbandonedPatchSet :: ChangeAbandoned -> PatchSet
changeAbandonedChange :: ChangeAbandoned -> Change
changeAbandonedAbandoner :: ChangeAbandoned -> User
changeAbandonedProject :: ChangeAbandoned -> Text
..} -> forall a. a -> Maybe a
Just Change
changeAbandonedChange
EventChangeDeleted ChangeDeleted {Change
User
changeDeletedDeleter :: User
changeDeletedChange :: Change
changeDeletedDeleter :: ChangeDeleted -> User
changeDeletedChange :: ChangeDeleted -> Change
..} -> forall a. a -> Maybe a
Just Change
changeDeletedChange
EventChangeMerged ChangeMerged {Int64
Text
Change
PatchSet
User
changeMergedEventCreatedOn :: Int64
changeMergedPatchSet :: PatchSet
changeMergedChange :: Change
changeMergedSubmitter :: User
changeMergedProject :: Text
changeMergedEventCreatedOn :: ChangeMerged -> Int64
changeMergedPatchSet :: ChangeMerged -> PatchSet
changeMergedChange :: ChangeMerged -> Change
changeMergedSubmitter :: ChangeMerged -> User
changeMergedProject :: ChangeMerged -> Text
..} -> forall a. a -> Maybe a
Just Change
changeMergedChange
EventChangeRestored ChangeRestored {Int64
Maybe Text
Change
PatchSet
User
changeRestoredEventCreatedOn :: Int64
changeRestoredReason :: Maybe Text
changeRestoredRestorer :: User
changeRestoredPatchSet :: PatchSet
changeRestoredChange :: Change
changeRestoredEventCreatedOn :: ChangeRestored -> Int64
changeRestoredReason :: ChangeRestored -> Maybe Text
changeRestoredRestorer :: ChangeRestored -> User
changeRestoredPatchSet :: ChangeRestored -> PatchSet
changeRestoredChange :: ChangeRestored -> Change
..} -> forall a. a -> Maybe a
Just Change
changeRestoredChange
EventCommentAdded CommentAdded {Int64
Change
PatchSet
User
commentAddedEventCreatedOn :: Int64
commentAddedAuthor :: User
commentAddedPatchSet :: PatchSet
commentAddedChange :: Change
commentAddedEventCreatedOn :: CommentAdded -> Int64
commentAddedAuthor :: CommentAdded -> User
commentAddedPatchSet :: CommentAdded -> PatchSet
commentAddedChange :: CommentAdded -> Change
..} -> forall a. a -> Maybe a
Just Change
commentAddedChange
Event
EventDroppedOutput -> forall a. Maybe a
Nothing
EventHashtagsChanged HashtagsChanged {Int64
Change
User
hashtagsChangedEventCreatedOn :: Int64
hashtagsChangedEditor :: User
hashtagsChangedChange :: Change
hashtagsChangedEventCreatedOn :: HashtagsChanged -> Int64
hashtagsChangedEditor :: HashtagsChanged -> User
hashtagsChangedChange :: HashtagsChanged -> Change
..} -> forall a. a -> Maybe a
Just Change
hashtagsChangedChange
EventProjectCreated ProjectCreated
_ -> forall a. Maybe a
Nothing
EventPatchsetCreated PatchsetCreated {Int64
Change
PatchSet
User
patchsetCreatedEventCreatedOn :: Int64
patchsetCreatedPatchSet :: PatchSet
patchsetCreatedChange :: Change
patchsetCreatedUploader :: User
patchsetCreatedEventCreatedOn :: PatchsetCreated -> Int64
patchsetCreatedPatchSet :: PatchsetCreated -> PatchSet
patchsetCreatedChange :: PatchsetCreated -> Change
patchsetCreatedUploader :: PatchsetCreated -> User
..} -> forall a. a -> Maybe a
Just Change
patchsetCreatedChange
EventRefUpdated RefUpdated
_ -> forall a. Maybe a
Nothing
EventReviewerAdded ReviewerAdded {Int64
Change
PatchSet
User
reviewerAddedEventCreatedOn :: Int64
reviewerAddedAdder :: User
reviewerAddedPatchSet :: PatchSet
reviewerAddedChange :: Change
reviewerAddedEventCreatedOn :: ReviewerAdded -> Int64
reviewerAddedAdder :: ReviewerAdded -> User
reviewerAddedPatchSet :: ReviewerAdded -> PatchSet
reviewerAddedChange :: ReviewerAdded -> Change
..} -> forall a. a -> Maybe a
Just Change
reviewerAddedChange
EventReviewerDeleted ReviewerDeleted {Int64
Change
PatchSet
User
reviewerDeletedEventCreatedOn :: Int64
reviewerDeletedRemover :: User
reviewerDeletedPatchSet :: PatchSet
reviewerDeletedChange :: Change
reviewerDeletedEventCreatedOn :: ReviewerDeleted -> Int64
reviewerDeletedRemover :: ReviewerDeleted -> User
reviewerDeletedPatchSet :: ReviewerDeleted -> PatchSet
reviewerDeletedChange :: ReviewerDeleted -> Change
..} -> forall a. a -> Maybe a
Just Change
reviewerDeletedChange
EventTopicChanged TopicChanged {Int64
Text
Change
User
topicChangedEventCreatedOn :: Int64
topicChangedOldTopic :: Text
topicChangedChanger :: User
topicChangedChange :: Change
topicChangedEventCreatedOn :: TopicChanged -> Int64
topicChangedOldTopic :: TopicChanged -> Text
topicChangedChanger :: TopicChanged -> User
topicChangedChange :: TopicChanged -> Change
..} -> forall a. a -> Maybe a
Just Change
topicChangedChange
EventWorkInProgressStateChanged WorkInProgressStateChanged {Int64
Change
PatchSet
User
workInProgressStateChangedEventCreatedOn :: Int64
workInProgressStateChangedChanger :: User
workInProgressStateChangedPatchSet :: PatchSet
workInProgressStateChangedChange :: Change
workInProgressStateChangedEventCreatedOn :: WorkInProgressStateChanged -> Int64
workInProgressStateChangedChanger :: WorkInProgressStateChanged -> User
workInProgressStateChangedPatchSet :: WorkInProgressStateChanged -> PatchSet
workInProgressStateChangedChange :: WorkInProgressStateChanged -> Change
..} -> forall a. a -> Maybe a
Just Change
workInProgressStateChangedChange
EventPrivateStateChanged PrivateStateChanged {Int64
Change
PatchSet
User
privateStateChangedChangedEventCreatedOn :: Int64
privateStateChangedChanger :: User
privateStateChangedPatchSet :: PatchSet
privateStateChangedChange :: Change
privateStateChangedChangedEventCreatedOn :: PrivateStateChanged -> Int64
privateStateChangedChanger :: PrivateStateChanged -> User
privateStateChangedPatchSet :: PrivateStateChanged -> PatchSet
privateStateChangedChange :: PrivateStateChanged -> Change
..} -> forall a. a -> Maybe a
Just Change
privateStateChangedChange
EventVoteDeleted VoteDeleted {Change
PatchSet
User
voteDeletedRemover :: User
voteDeletedPatchSet :: PatchSet
voteDeletedChange :: Change
voteDeletedRemover :: VoteDeleted -> User
voteDeletedPatchSet :: VoteDeleted -> PatchSet
voteDeletedChange :: VoteDeleted -> Change
..} -> forall a. a -> Maybe a
Just Change
voteDeletedChange
getPatchSet :: Event -> Maybe PatchSet
getPatchSet :: Event -> Maybe PatchSet
getPatchSet Event
event = case Event
event of
EventAssigneeChanged AssigneeChanged
_ -> forall a. Maybe a
Nothing
EventChangeAbandoned ChangeAbandoned {Int64
Maybe Text
Text
Change
PatchSet
User
changeAbandonedEventCreatedOn :: Int64
changeAbandonedReason :: Maybe Text
changeAbandonedPatchSet :: PatchSet
changeAbandonedChange :: Change
changeAbandonedAbandoner :: User
changeAbandonedProject :: Text
changeAbandonedEventCreatedOn :: ChangeAbandoned -> Int64
changeAbandonedReason :: ChangeAbandoned -> Maybe Text
changeAbandonedPatchSet :: ChangeAbandoned -> PatchSet
changeAbandonedChange :: ChangeAbandoned -> Change
changeAbandonedAbandoner :: ChangeAbandoned -> User
changeAbandonedProject :: ChangeAbandoned -> Text
..} -> forall a. a -> Maybe a
Just PatchSet
changeAbandonedPatchSet
EventChangeDeleted ChangeDeleted
_ -> forall a. Maybe a
Nothing
EventChangeMerged ChangeMerged {Int64
Text
Change
PatchSet
User
changeMergedEventCreatedOn :: Int64
changeMergedPatchSet :: PatchSet
changeMergedChange :: Change
changeMergedSubmitter :: User
changeMergedProject :: Text
changeMergedEventCreatedOn :: ChangeMerged -> Int64
changeMergedPatchSet :: ChangeMerged -> PatchSet
changeMergedChange :: ChangeMerged -> Change
changeMergedSubmitter :: ChangeMerged -> User
changeMergedProject :: ChangeMerged -> Text
..} -> forall a. a -> Maybe a
Just PatchSet
changeMergedPatchSet
EventChangeRestored ChangeRestored {Int64
Maybe Text
Change
PatchSet
User
changeRestoredEventCreatedOn :: Int64
changeRestoredReason :: Maybe Text
changeRestoredRestorer :: User
changeRestoredPatchSet :: PatchSet
changeRestoredChange :: Change
changeRestoredEventCreatedOn :: ChangeRestored -> Int64
changeRestoredReason :: ChangeRestored -> Maybe Text
changeRestoredRestorer :: ChangeRestored -> User
changeRestoredPatchSet :: ChangeRestored -> PatchSet
changeRestoredChange :: ChangeRestored -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
changeRestoredPatchSet
EventCommentAdded CommentAdded {Int64
Change
PatchSet
User
commentAddedEventCreatedOn :: Int64
commentAddedAuthor :: User
commentAddedPatchSet :: PatchSet
commentAddedChange :: Change
commentAddedEventCreatedOn :: CommentAdded -> Int64
commentAddedAuthor :: CommentAdded -> User
commentAddedPatchSet :: CommentAdded -> PatchSet
commentAddedChange :: CommentAdded -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
commentAddedPatchSet
Event
EventDroppedOutput -> forall a. Maybe a
Nothing
EventHashtagsChanged HashtagsChanged
_ -> forall a. Maybe a
Nothing
EventProjectCreated ProjectCreated
_ -> forall a. Maybe a
Nothing
EventPatchsetCreated PatchsetCreated {Int64
Change
PatchSet
User
patchsetCreatedEventCreatedOn :: Int64
patchsetCreatedPatchSet :: PatchSet
patchsetCreatedChange :: Change
patchsetCreatedUploader :: User
patchsetCreatedEventCreatedOn :: PatchsetCreated -> Int64
patchsetCreatedPatchSet :: PatchsetCreated -> PatchSet
patchsetCreatedChange :: PatchsetCreated -> Change
patchsetCreatedUploader :: PatchsetCreated -> User
..} -> forall a. a -> Maybe a
Just PatchSet
patchsetCreatedPatchSet
EventRefUpdated RefUpdated
_ -> forall a. Maybe a
Nothing
EventReviewerAdded ReviewerAdded {Int64
Change
PatchSet
User
reviewerAddedEventCreatedOn :: Int64
reviewerAddedAdder :: User
reviewerAddedPatchSet :: PatchSet
reviewerAddedChange :: Change
reviewerAddedEventCreatedOn :: ReviewerAdded -> Int64
reviewerAddedAdder :: ReviewerAdded -> User
reviewerAddedPatchSet :: ReviewerAdded -> PatchSet
reviewerAddedChange :: ReviewerAdded -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
reviewerAddedPatchSet
EventReviewerDeleted ReviewerDeleted {Int64
Change
PatchSet
User
reviewerDeletedEventCreatedOn :: Int64
reviewerDeletedRemover :: User
reviewerDeletedPatchSet :: PatchSet
reviewerDeletedChange :: Change
reviewerDeletedEventCreatedOn :: ReviewerDeleted -> Int64
reviewerDeletedRemover :: ReviewerDeleted -> User
reviewerDeletedPatchSet :: ReviewerDeleted -> PatchSet
reviewerDeletedChange :: ReviewerDeleted -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
reviewerDeletedPatchSet
EventTopicChanged TopicChanged
_ -> forall a. Maybe a
Nothing
EventWorkInProgressStateChanged WorkInProgressStateChanged {Int64
Change
PatchSet
User
workInProgressStateChangedEventCreatedOn :: Int64
workInProgressStateChangedChanger :: User
workInProgressStateChangedPatchSet :: PatchSet
workInProgressStateChangedChange :: Change
workInProgressStateChangedEventCreatedOn :: WorkInProgressStateChanged -> Int64
workInProgressStateChangedChanger :: WorkInProgressStateChanged -> User
workInProgressStateChangedPatchSet :: WorkInProgressStateChanged -> PatchSet
workInProgressStateChangedChange :: WorkInProgressStateChanged -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
workInProgressStateChangedPatchSet
EventPrivateStateChanged PrivateStateChanged {Int64
Change
PatchSet
User
privateStateChangedChangedEventCreatedOn :: Int64
privateStateChangedChanger :: User
privateStateChangedPatchSet :: PatchSet
privateStateChangedChange :: Change
privateStateChangedChangedEventCreatedOn :: PrivateStateChanged -> Int64
privateStateChangedChanger :: PrivateStateChanged -> User
privateStateChangedPatchSet :: PrivateStateChanged -> PatchSet
privateStateChangedChange :: PrivateStateChanged -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
privateStateChangedPatchSet
EventVoteDeleted VoteDeleted {Change
PatchSet
User
voteDeletedRemover :: User
voteDeletedPatchSet :: PatchSet
voteDeletedChange :: Change
voteDeletedRemover :: VoteDeleted -> User
voteDeletedPatchSet :: VoteDeleted -> PatchSet
voteDeletedChange :: VoteDeleted -> Change
..} -> forall a. a -> Maybe a
Just PatchSet
voteDeletedPatchSet
getUser :: Event -> Maybe User
getUser :: Event -> Maybe User
getUser Event
event = case Event
event of
EventAssigneeChanged AssigneeChanged {Int64
Change
User
assigneeChangedEventCreatedOn :: Int64
assigneeChangedChanger :: User
assigneeChangedChange :: Change
assigneeChangedEventCreatedOn :: AssigneeChanged -> Int64
assigneeChangedChanger :: AssigneeChanged -> User
assigneeChangedChange :: AssigneeChanged -> Change
..} -> forall a. a -> Maybe a
Just User
assigneeChangedChanger
EventChangeAbandoned ChangeAbandoned {Int64
Maybe Text
Text
Change
PatchSet
User
changeAbandonedEventCreatedOn :: Int64
changeAbandonedReason :: Maybe Text
changeAbandonedPatchSet :: PatchSet
changeAbandonedChange :: Change
changeAbandonedAbandoner :: User
changeAbandonedProject :: Text
changeAbandonedEventCreatedOn :: ChangeAbandoned -> Int64
changeAbandonedReason :: ChangeAbandoned -> Maybe Text
changeAbandonedPatchSet :: ChangeAbandoned -> PatchSet
changeAbandonedChange :: ChangeAbandoned -> Change
changeAbandonedAbandoner :: ChangeAbandoned -> User
changeAbandonedProject :: ChangeAbandoned -> Text
..} -> forall a. a -> Maybe a
Just User
changeAbandonedAbandoner
EventChangeDeleted ChangeDeleted {Change
User
changeDeletedDeleter :: User
changeDeletedChange :: Change
changeDeletedDeleter :: ChangeDeleted -> User
changeDeletedChange :: ChangeDeleted -> Change
..} -> forall a. a -> Maybe a
Just User
changeDeletedDeleter
EventChangeMerged ChangeMerged {Int64
Text
Change
PatchSet
User
changeMergedEventCreatedOn :: Int64
changeMergedPatchSet :: PatchSet
changeMergedChange :: Change
changeMergedSubmitter :: User
changeMergedProject :: Text
changeMergedEventCreatedOn :: ChangeMerged -> Int64
changeMergedPatchSet :: ChangeMerged -> PatchSet
changeMergedChange :: ChangeMerged -> Change
changeMergedSubmitter :: ChangeMerged -> User
changeMergedProject :: ChangeMerged -> Text
..} -> forall a. a -> Maybe a
Just User
changeMergedSubmitter
EventChangeRestored ChangeRestored {Int64
Maybe Text
Change
PatchSet
User
changeRestoredEventCreatedOn :: Int64
changeRestoredReason :: Maybe Text
changeRestoredRestorer :: User
changeRestoredPatchSet :: PatchSet
changeRestoredChange :: Change
changeRestoredEventCreatedOn :: ChangeRestored -> Int64
changeRestoredReason :: ChangeRestored -> Maybe Text
changeRestoredRestorer :: ChangeRestored -> User
changeRestoredPatchSet :: ChangeRestored -> PatchSet
changeRestoredChange :: ChangeRestored -> Change
..} -> forall a. a -> Maybe a
Just User
changeRestoredRestorer
EventCommentAdded CommentAdded {Int64
Change
PatchSet
User
commentAddedEventCreatedOn :: Int64
commentAddedAuthor :: User
commentAddedPatchSet :: PatchSet
commentAddedChange :: Change
commentAddedEventCreatedOn :: CommentAdded -> Int64
commentAddedAuthor :: CommentAdded -> User
commentAddedPatchSet :: CommentAdded -> PatchSet
commentAddedChange :: CommentAdded -> Change
..} -> forall a. a -> Maybe a
Just User
commentAddedAuthor
Event
EventDroppedOutput -> forall a. Maybe a
Nothing
EventHashtagsChanged HashtagsChanged {Int64
Change
User
hashtagsChangedEventCreatedOn :: Int64
hashtagsChangedEditor :: User
hashtagsChangedChange :: Change
hashtagsChangedEventCreatedOn :: HashtagsChanged -> Int64
hashtagsChangedEditor :: HashtagsChanged -> User
hashtagsChangedChange :: HashtagsChanged -> Change
..} -> forall a. a -> Maybe a
Just User
hashtagsChangedEditor
EventProjectCreated ProjectCreated
_ -> forall a. Maybe a
Nothing
EventPatchsetCreated PatchsetCreated {Int64
Change
PatchSet
User
patchsetCreatedEventCreatedOn :: Int64
patchsetCreatedPatchSet :: PatchSet
patchsetCreatedChange :: Change
patchsetCreatedUploader :: User
patchsetCreatedEventCreatedOn :: PatchsetCreated -> Int64
patchsetCreatedPatchSet :: PatchsetCreated -> PatchSet
patchsetCreatedChange :: PatchsetCreated -> Change
patchsetCreatedUploader :: PatchsetCreated -> User
..} -> forall a. a -> Maybe a
Just User
patchsetCreatedUploader
EventRefUpdated RefUpdated
_ -> forall a. Maybe a
Nothing
EventReviewerAdded ReviewerAdded {Int64
Change
PatchSet
User
reviewerAddedEventCreatedOn :: Int64
reviewerAddedAdder :: User
reviewerAddedPatchSet :: PatchSet
reviewerAddedChange :: Change
reviewerAddedEventCreatedOn :: ReviewerAdded -> Int64
reviewerAddedAdder :: ReviewerAdded -> User
reviewerAddedPatchSet :: ReviewerAdded -> PatchSet
reviewerAddedChange :: ReviewerAdded -> Change
..} -> forall a. a -> Maybe a
Just User
reviewerAddedAdder
EventReviewerDeleted ReviewerDeleted {Int64
Change
PatchSet
User
reviewerDeletedEventCreatedOn :: Int64
reviewerDeletedRemover :: User
reviewerDeletedPatchSet :: PatchSet
reviewerDeletedChange :: Change
reviewerDeletedEventCreatedOn :: ReviewerDeleted -> Int64
reviewerDeletedRemover :: ReviewerDeleted -> User
reviewerDeletedPatchSet :: ReviewerDeleted -> PatchSet
reviewerDeletedChange :: ReviewerDeleted -> Change
..} -> forall a. a -> Maybe a
Just User
reviewerDeletedRemover
EventTopicChanged TopicChanged {Int64
Text
Change
User
topicChangedEventCreatedOn :: Int64
topicChangedOldTopic :: Text
topicChangedChanger :: User
topicChangedChange :: Change
topicChangedEventCreatedOn :: TopicChanged -> Int64
topicChangedOldTopic :: TopicChanged -> Text
topicChangedChanger :: TopicChanged -> User
topicChangedChange :: TopicChanged -> Change
..} -> forall a. a -> Maybe a
Just User
topicChangedChanger
EventWorkInProgressStateChanged WorkInProgressStateChanged {Int64
Change
PatchSet
User
workInProgressStateChangedEventCreatedOn :: Int64
workInProgressStateChangedChanger :: User
workInProgressStateChangedPatchSet :: PatchSet
workInProgressStateChangedChange :: Change
workInProgressStateChangedEventCreatedOn :: WorkInProgressStateChanged -> Int64
workInProgressStateChangedChanger :: WorkInProgressStateChanged -> User
workInProgressStateChangedPatchSet :: WorkInProgressStateChanged -> PatchSet
workInProgressStateChangedChange :: WorkInProgressStateChanged -> Change
..} -> forall a. a -> Maybe a
Just User
workInProgressStateChangedChanger
EventPrivateStateChanged PrivateStateChanged {Int64
Change
PatchSet
User
privateStateChangedChangedEventCreatedOn :: Int64
privateStateChangedChanger :: User
privateStateChangedPatchSet :: PatchSet
privateStateChangedChange :: Change
privateStateChangedChangedEventCreatedOn :: PrivateStateChanged -> Int64
privateStateChangedChanger :: PrivateStateChanged -> User
privateStateChangedPatchSet :: PrivateStateChanged -> PatchSet
privateStateChangedChange :: PrivateStateChanged -> Change
..} -> forall a. a -> Maybe a
Just User
privateStateChangedChanger
EventVoteDeleted VoteDeleted {Change
PatchSet
User
voteDeletedRemover :: User
voteDeletedPatchSet :: PatchSet
voteDeletedChange :: Change
voteDeletedRemover :: VoteDeleted -> User
voteDeletedPatchSet :: VoteDeleted -> PatchSet
voteDeletedChange :: VoteDeleted -> Change
..} -> forall a. a -> Maybe a
Just User
voteDeletedRemover
getCreatedOn :: Event -> Maybe Int64
getCreatedOn :: Event -> Maybe Int64
getCreatedOn Event
event = case Event
event of
EventAssigneeChanged AssigneeChanged {Int64
Change
User
assigneeChangedEventCreatedOn :: Int64
assigneeChangedChanger :: User
assigneeChangedChange :: Change
assigneeChangedEventCreatedOn :: AssigneeChanged -> Int64
assigneeChangedChanger :: AssigneeChanged -> User
assigneeChangedChange :: AssigneeChanged -> Change
..} -> forall a. a -> Maybe a
Just Int64
assigneeChangedEventCreatedOn
EventChangeAbandoned ChangeAbandoned {Int64
Maybe Text
Text
Change
PatchSet
User
changeAbandonedEventCreatedOn :: Int64
changeAbandonedReason :: Maybe Text
changeAbandonedPatchSet :: PatchSet
changeAbandonedChange :: Change
changeAbandonedAbandoner :: User
changeAbandonedProject :: Text
changeAbandonedEventCreatedOn :: ChangeAbandoned -> Int64
changeAbandonedReason :: ChangeAbandoned -> Maybe Text
changeAbandonedPatchSet :: ChangeAbandoned -> PatchSet
changeAbandonedChange :: ChangeAbandoned -> Change
changeAbandonedAbandoner :: ChangeAbandoned -> User
changeAbandonedProject :: ChangeAbandoned -> Text
..} -> forall a. a -> Maybe a
Just Int64
changeAbandonedEventCreatedOn
EventChangeDeleted ChangeDeleted
_ -> forall a. Maybe a
Nothing
EventChangeMerged ChangeMerged {Int64
Text
Change
PatchSet
User
changeMergedEventCreatedOn :: Int64
changeMergedPatchSet :: PatchSet
changeMergedChange :: Change
changeMergedSubmitter :: User
changeMergedProject :: Text
changeMergedEventCreatedOn :: ChangeMerged -> Int64
changeMergedPatchSet :: ChangeMerged -> PatchSet
changeMergedChange :: ChangeMerged -> Change
changeMergedSubmitter :: ChangeMerged -> User
changeMergedProject :: ChangeMerged -> Text
..} -> forall a. a -> Maybe a
Just Int64
changeMergedEventCreatedOn
EventChangeRestored ChangeRestored {Int64
Maybe Text
Change
PatchSet
User
changeRestoredEventCreatedOn :: Int64
changeRestoredReason :: Maybe Text
changeRestoredRestorer :: User
changeRestoredPatchSet :: PatchSet
changeRestoredChange :: Change
changeRestoredEventCreatedOn :: ChangeRestored -> Int64
changeRestoredReason :: ChangeRestored -> Maybe Text
changeRestoredRestorer :: ChangeRestored -> User
changeRestoredPatchSet :: ChangeRestored -> PatchSet
changeRestoredChange :: ChangeRestored -> Change
..} -> forall a. a -> Maybe a
Just Int64
changeRestoredEventCreatedOn
EventCommentAdded CommentAdded {Int64
Change
PatchSet
User
commentAddedEventCreatedOn :: Int64
commentAddedAuthor :: User
commentAddedPatchSet :: PatchSet
commentAddedChange :: Change
commentAddedEventCreatedOn :: CommentAdded -> Int64
commentAddedAuthor :: CommentAdded -> User
commentAddedPatchSet :: CommentAdded -> PatchSet
commentAddedChange :: CommentAdded -> Change
..} -> forall a. a -> Maybe a
Just Int64
commentAddedEventCreatedOn
Event
EventDroppedOutput -> forall a. Maybe a
Nothing
EventHashtagsChanged HashtagsChanged {Int64
Change
User
hashtagsChangedEventCreatedOn :: Int64
hashtagsChangedEditor :: User
hashtagsChangedChange :: Change
hashtagsChangedEventCreatedOn :: HashtagsChanged -> Int64
hashtagsChangedEditor :: HashtagsChanged -> User
hashtagsChangedChange :: HashtagsChanged -> Change
..} -> forall a. a -> Maybe a
Just Int64
hashtagsChangedEventCreatedOn
EventProjectCreated ProjectCreated {Int64
Text
projectCreatedEventCreatedOn :: Int64
projectCreatedHeadName :: Text
projectCreatedProjectName :: Text
projectCreatedEventCreatedOn :: ProjectCreated -> Int64
projectCreatedHeadName :: ProjectCreated -> Text
projectCreatedProjectName :: ProjectCreated -> Text
..} -> forall a. a -> Maybe a
Just Int64
projectCreatedEventCreatedOn
EventPatchsetCreated PatchsetCreated {Int64
Change
PatchSet
User
patchsetCreatedEventCreatedOn :: Int64
patchsetCreatedPatchSet :: PatchSet
patchsetCreatedChange :: Change
patchsetCreatedUploader :: User
patchsetCreatedEventCreatedOn :: PatchsetCreated -> Int64
patchsetCreatedPatchSet :: PatchsetCreated -> PatchSet
patchsetCreatedChange :: PatchsetCreated -> Change
patchsetCreatedUploader :: PatchsetCreated -> User
..} -> forall a. a -> Maybe a
Just Int64
patchsetCreatedEventCreatedOn
EventRefUpdated RefUpdated {Int64
Ref
User
refUpdatedEventCreatedOn :: Int64
refUpdatedRefUpdate :: Ref
refUpdatedSubmitter :: User
refUpdatedEventCreatedOn :: RefUpdated -> Int64
refUpdatedRefUpdate :: RefUpdated -> Ref
refUpdatedSubmitter :: RefUpdated -> User
..} -> forall a. a -> Maybe a
Just Int64
refUpdatedEventCreatedOn
EventReviewerAdded ReviewerAdded {Int64
Change
PatchSet
User
reviewerAddedEventCreatedOn :: Int64
reviewerAddedAdder :: User
reviewerAddedPatchSet :: PatchSet
reviewerAddedChange :: Change
reviewerAddedEventCreatedOn :: ReviewerAdded -> Int64
reviewerAddedAdder :: ReviewerAdded -> User
reviewerAddedPatchSet :: ReviewerAdded -> PatchSet
reviewerAddedChange :: ReviewerAdded -> Change
..} -> forall a. a -> Maybe a
Just Int64
reviewerAddedEventCreatedOn
EventReviewerDeleted ReviewerDeleted {Int64
Change
PatchSet
User
reviewerDeletedEventCreatedOn :: Int64
reviewerDeletedRemover :: User
reviewerDeletedPatchSet :: PatchSet
reviewerDeletedChange :: Change
reviewerDeletedEventCreatedOn :: ReviewerDeleted -> Int64
reviewerDeletedRemover :: ReviewerDeleted -> User
reviewerDeletedPatchSet :: ReviewerDeleted -> PatchSet
reviewerDeletedChange :: ReviewerDeleted -> Change
..} -> forall a. a -> Maybe a
Just Int64
reviewerDeletedEventCreatedOn
EventTopicChanged TopicChanged {Int64
Text
Change
User
topicChangedEventCreatedOn :: Int64
topicChangedOldTopic :: Text
topicChangedChanger :: User
topicChangedChange :: Change
topicChangedEventCreatedOn :: TopicChanged -> Int64
topicChangedOldTopic :: TopicChanged -> Text
topicChangedChanger :: TopicChanged -> User
topicChangedChange :: TopicChanged -> Change
..} -> forall a. a -> Maybe a
Just Int64
topicChangedEventCreatedOn
EventWorkInProgressStateChanged WorkInProgressStateChanged {Int64
Change
PatchSet
User
workInProgressStateChangedEventCreatedOn :: Int64
workInProgressStateChangedChanger :: User
workInProgressStateChangedPatchSet :: PatchSet
workInProgressStateChangedChange :: Change
workInProgressStateChangedEventCreatedOn :: WorkInProgressStateChanged -> Int64
workInProgressStateChangedChanger :: WorkInProgressStateChanged -> User
workInProgressStateChangedPatchSet :: WorkInProgressStateChanged -> PatchSet
workInProgressStateChangedChange :: WorkInProgressStateChanged -> Change
..} -> forall a. a -> Maybe a
Just Int64
workInProgressStateChangedEventCreatedOn
EventPrivateStateChanged PrivateStateChanged {Int64
Change
PatchSet
User
privateStateChangedChangedEventCreatedOn :: Int64
privateStateChangedChanger :: User
privateStateChangedPatchSet :: PatchSet
privateStateChangedChange :: Change
privateStateChangedChangedEventCreatedOn :: PrivateStateChanged -> Int64
privateStateChangedChanger :: PrivateStateChanged -> User
privateStateChangedPatchSet :: PrivateStateChanged -> PatchSet
privateStateChangedChange :: PrivateStateChanged -> Change
..} -> forall a. a -> Maybe a
Just Int64
privateStateChangedChangedEventCreatedOn
EventVoteDeleted VoteDeleted
_ -> forall a. Maybe a
Nothing
getEventType :: Event -> EventType
getEventType :: Event -> EventType
getEventType Event
event = case Event
event of
EventAssigneeChanged AssigneeChanged
_ -> EventType
AssigneeChangedEvent
EventChangeAbandoned ChangeAbandoned
_ -> EventType
ChangeAbandonedEvent
EventChangeDeleted ChangeDeleted
_ -> EventType
ChangeDeletedEvent
EventChangeMerged ChangeMerged
_ -> EventType
ChangeMergedEvent
EventChangeRestored ChangeRestored
_ -> EventType
ChangeRestoredEvent
EventCommentAdded CommentAdded
_ -> EventType
CommentAddedEvent
Event
EventDroppedOutput -> EventType
DroppedOutputEvent
EventHashtagsChanged HashtagsChanged
_ -> EventType
HashtagsChangedEvent
EventProjectCreated ProjectCreated
_ -> EventType
ProjectCreatedEvent
EventPatchsetCreated PatchsetCreated
_ -> EventType
PatchsetCreatedEvent
EventRefUpdated RefUpdated
_ -> EventType
RefUpdatedEvent
EventReviewerAdded ReviewerAdded
_ -> EventType
ReviewerAddedEvent
EventReviewerDeleted ReviewerDeleted
_ -> EventType
ReviewerDeletedEvent
EventTopicChanged TopicChanged
_ -> EventType
TopicChangedEvent
EventWorkInProgressStateChanged WorkInProgressStateChanged
_ -> EventType
WorkInProgressStateChangedEvent
EventPrivateStateChanged PrivateStateChanged
_ -> EventType
PrivateStateChangedEvent
EventVoteDeleted VoteDeleted
_ -> EventType
VoteDeletedEvent
eventName :: EventType -> Text
eventName :: EventType -> Text
eventName EventType
eventType = case EventType
eventType of
EventType
AssigneeChangedEvent -> Text
"assignee-changed"
EventType
ChangeAbandonedEvent -> Text
"change-abandoned"
EventType
ChangeDeletedEvent -> Text
"change-deleted"
EventType
ChangeMergedEvent -> Text
"change-merged"
EventType
ChangeRestoredEvent -> Text
"change-restored"
EventType
CommentAddedEvent -> Text
"comment-added"
EventType
DroppedOutputEvent -> Text
"dropped-output"
EventType
HashtagsChangedEvent -> Text
"hashtags-changed"
EventType
ProjectCreatedEvent -> Text
"project-created"
EventType
PatchsetCreatedEvent -> Text
"patchset-created"
EventType
RefUpdatedEvent -> Text
"ref-updated"
EventType
ReviewerAddedEvent -> Text
"reviewer-added"
EventType
ReviewerDeletedEvent -> Text
"reviewer-deleted"
EventType
TopicChangedEvent -> Text
"topic-changed"
EventType
WorkInProgressStateChangedEvent -> Text
"wip-state-changed"
EventType
PrivateStateChangedEvent -> Text
"private-state-changed"
EventType
VoteDeletedEvent -> Text
"vote-deleted"