module GitHub.Endpoints.Repos.Webhooks (
webhooksFor',
webhooksForR,
webhookFor',
webhookForR,
createRepoWebhook',
createRepoWebhookR,
editRepoWebhook',
editRepoWebhookR,
testPushRepoWebhook',
testPushRepoWebhookR,
pingRepoWebhook',
pingRepoWebhookR,
deleteRepoWebhook',
deleteRepoWebhookR,
) where
import GitHub.Data
import GitHub.Internal.Prelude
import GitHub.Request
import Prelude ()
webhooksFor' :: Auth -> Name Owner -> Name Repo -> IO (Either Error (Vector RepoWebhook))
webhooksFor' :: Auth
-> Name Owner
-> Name Repo
-> IO (Either Error (Vector RepoWebhook))
webhooksFor' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo =
Auth
-> GenRequest 'MtJSON Any (Vector RepoWebhook)
-> IO (Either Error (Vector RepoWebhook))
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtJSON Any (Vector RepoWebhook)
-> IO (Either Error (Vector RepoWebhook)))
-> GenRequest 'MtJSON Any (Vector RepoWebhook)
-> IO (Either Error (Vector RepoWebhook))
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> FetchCount
-> GenRequest 'MtJSON Any (Vector RepoWebhook)
forall (k :: RW).
Name Owner
-> Name Repo -> FetchCount -> Request k (Vector RepoWebhook)
webhooksForR Name Owner
user Name Repo
repo FetchCount
FetchAll
webhooksForR :: Name Owner -> Name Repo -> FetchCount -> Request k (Vector RepoWebhook)
webhooksForR :: Name Owner
-> Name Repo -> FetchCount -> Request k (Vector RepoWebhook)
webhooksForR user :: Name Owner
user repo :: Name Repo
repo =
Paths
-> QueryString -> FetchCount -> Request k (Vector RepoWebhook)
forall a (mt :: RW).
FromJSON a =>
Paths -> QueryString -> FetchCount -> Request mt (Vector a)
pagedQuery ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "hooks"] []
webhookFor' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error RepoWebhook)
webhookFor' :: Auth
-> Name Owner
-> Name Repo
-> Id RepoWebhook
-> IO (Either Error RepoWebhook)
webhookFor' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
Auth
-> GenRequest 'MtJSON Any RepoWebhook
-> IO (Either Error RepoWebhook)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtJSON Any RepoWebhook
-> IO (Either Error RepoWebhook))
-> GenRequest 'MtJSON Any RepoWebhook
-> IO (Either Error RepoWebhook)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> Id RepoWebhook
-> GenRequest 'MtJSON Any RepoWebhook
forall (k :: RW).
Name Owner -> Name Repo -> Id RepoWebhook -> Request k RepoWebhook
webhookForR Name Owner
user Name Repo
repo Id RepoWebhook
hookId
webhookForR :: Name Owner -> Name Repo -> Id RepoWebhook -> Request k RepoWebhook
webhookForR :: Name Owner -> Name Repo -> Id RepoWebhook -> Request k RepoWebhook
webhookForR user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
Paths -> QueryString -> Request k RepoWebhook
forall (mt :: RW) a. Paths -> QueryString -> Request mt a
query ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "hooks", Id RepoWebhook -> Text
forall a. IsPathPart a => a -> Text
toPathPart Id RepoWebhook
hookId] []
createRepoWebhook' :: Auth -> Name Owner -> Name Repo -> NewRepoWebhook -> IO (Either Error RepoWebhook)
createRepoWebhook' :: Auth
-> Name Owner
-> Name Repo
-> NewRepoWebhook
-> IO (Either Error RepoWebhook)
createRepoWebhook' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hook :: NewRepoWebhook
hook =
Auth
-> GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook))
-> GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> NewRepoWebhook
-> GenRequest 'MtJSON 'RW RepoWebhook
createRepoWebhookR Name Owner
user Name Repo
repo NewRepoWebhook
hook
createRepoWebhookR :: Name Owner -> Name Repo -> NewRepoWebhook -> Request 'RW RepoWebhook
createRepoWebhookR :: Name Owner
-> Name Repo
-> NewRepoWebhook
-> GenRequest 'MtJSON 'RW RepoWebhook
createRepoWebhookR user :: Name Owner
user repo :: Name Repo
repo hook :: NewRepoWebhook
hook =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtJSON 'RW RepoWebhook
forall a. CommandMethod -> Paths -> ByteString -> Request 'RW a
command CommandMethod
Post ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "hooks"] (NewRepoWebhook -> ByteString
forall a. ToJSON a => a -> ByteString
encode NewRepoWebhook
hook)
editRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> EditRepoWebhook -> IO (Either Error RepoWebhook)
editRepoWebhook' :: Auth
-> Name Owner
-> Name Repo
-> Id RepoWebhook
-> EditRepoWebhook
-> IO (Either Error RepoWebhook)
editRepoWebhook' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId hookEdit :: EditRepoWebhook
hookEdit =
Auth
-> GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook))
-> GenRequest 'MtJSON 'RW RepoWebhook
-> IO (Either Error RepoWebhook)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo
-> Id RepoWebhook
-> EditRepoWebhook
-> GenRequest 'MtJSON 'RW RepoWebhook
editRepoWebhookR Name Owner
user Name Repo
repo Id RepoWebhook
hookId EditRepoWebhook
hookEdit
editRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> EditRepoWebhook -> Request 'RW RepoWebhook
editRepoWebhookR :: Name Owner
-> Name Repo
-> Id RepoWebhook
-> EditRepoWebhook
-> GenRequest 'MtJSON 'RW RepoWebhook
editRepoWebhookR user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId hookEdit :: EditRepoWebhook
hookEdit =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtJSON 'RW RepoWebhook
forall a. CommandMethod -> Paths -> ByteString -> Request 'RW a
command CommandMethod
Patch ["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "hooks", Id RepoWebhook -> Text
forall a. IsPathPart a => a -> Text
toPathPart Id RepoWebhook
hookId] (EditRepoWebhook -> ByteString
forall a. ToJSON a => a -> ByteString
encode EditRepoWebhook
hookEdit)
testPushRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error Bool)
testPushRepoWebhook' :: Auth
-> Name Owner
-> Name Repo
-> Id RepoWebhook
-> IO (Either Error Bool)
testPushRepoWebhook' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
Auth -> GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool))
-> GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
testPushRepoWebhookR Name Owner
user Name Repo
repo Id RepoWebhook
hookId
testPushRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
testPushRepoWebhookR :: Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
testPushRepoWebhookR user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtStatus 'RW Bool
forall (mt :: MediaType *) a.
CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a
Command CommandMethod
Post (Name Owner -> Name Repo -> Id RepoWebhook -> Maybe Text -> Paths
createWebhookOpPath Name Owner
user Name Repo
repo Id RepoWebhook
hookId (Maybe Text -> Paths) -> Maybe Text -> Paths
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text
forall a. a -> Maybe a
Just "tests") (() -> ByteString
forall a. ToJSON a => a -> ByteString
encode ())
pingRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error Bool)
pingRepoWebhook' :: Auth
-> Name Owner
-> Name Repo
-> Id RepoWebhook
-> IO (Either Error Bool)
pingRepoWebhook' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
Auth -> GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool)
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool))
-> GenRequest 'MtStatus 'RW Bool -> IO (Either Error Bool)
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
pingRepoWebhookR Name Owner
user Name Repo
repo Id RepoWebhook
hookId
pingRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
pingRepoWebhookR :: Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtStatus 'RW Bool
pingRepoWebhookR user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
CommandMethod
-> Paths -> ByteString -> GenRequest 'MtStatus 'RW Bool
forall (mt :: MediaType *) a.
CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a
Command CommandMethod
Post (Name Owner -> Name Repo -> Id RepoWebhook -> Maybe Text -> Paths
createWebhookOpPath Name Owner
user Name Repo
repo Id RepoWebhook
hookId (Maybe Text -> Paths) -> Maybe Text -> Paths
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text
forall a. a -> Maybe a
Just "pings") (() -> ByteString
forall a. ToJSON a => a -> ByteString
encode ())
deleteRepoWebhook' :: Auth -> Name Owner -> Name Repo -> Id RepoWebhook -> IO (Either Error ())
deleteRepoWebhook' :: Auth
-> Name Owner
-> Name Repo
-> Id RepoWebhook
-> IO (Either Error ())
deleteRepoWebhook' auth :: Auth
auth user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
Auth -> GenRequest 'MtUnit 'RW () -> IO (Either Error ())
forall am (mt :: MediaType *) a (rw :: RW).
(AuthMethod am, ParseResponse mt a) =>
am -> GenRequest mt rw a -> IO (Either Error a)
executeRequest Auth
auth (GenRequest 'MtUnit 'RW () -> IO (Either Error ()))
-> GenRequest 'MtUnit 'RW () -> IO (Either Error ())
forall a b. (a -> b) -> a -> b
$ Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtUnit 'RW ()
deleteRepoWebhookR Name Owner
user Name Repo
repo Id RepoWebhook
hookId
deleteRepoWebhookR :: Name Owner -> Name Repo -> Id RepoWebhook -> GenRequest 'MtUnit 'RW ()
deleteRepoWebhookR :: Name Owner
-> Name Repo -> Id RepoWebhook -> GenRequest 'MtUnit 'RW ()
deleteRepoWebhookR user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
CommandMethod -> Paths -> ByteString -> GenRequest 'MtUnit 'RW ()
forall (mt :: MediaType *) a.
CommandMethod -> Paths -> ByteString -> GenRequest mt 'RW a
Command CommandMethod
Delete (Name Owner -> Name Repo -> Id RepoWebhook -> Maybe Text -> Paths
createWebhookOpPath Name Owner
user Name Repo
repo Id RepoWebhook
hookId Maybe Text
forall a. Maybe a
Nothing) ByteString
forall a. Monoid a => a
mempty
createBaseWebhookPath :: Name Owner -> Name Repo -> Id RepoWebhook -> Paths
createBaseWebhookPath :: Name Owner -> Name Repo -> Id RepoWebhook -> Paths
createBaseWebhookPath user :: Name Owner
user repo :: Name Repo
repo hookId :: Id RepoWebhook
hookId =
["repos", Name Owner -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Owner
user, Name Repo -> Text
forall a. IsPathPart a => a -> Text
toPathPart Name Repo
repo, "hooks", Id RepoWebhook -> Text
forall a. IsPathPart a => a -> Text
toPathPart Id RepoWebhook
hookId]
createWebhookOpPath :: Name Owner -> Name Repo -> Id RepoWebhook -> Maybe Text -> Paths
createWebhookOpPath :: Name Owner -> Name Repo -> Id RepoWebhook -> Maybe Text -> Paths
createWebhookOpPath owner :: Name Owner
owner reqName :: Name Repo
reqName webhookId :: Id RepoWebhook
webhookId Nothing = Name Owner -> Name Repo -> Id RepoWebhook -> Paths
createBaseWebhookPath Name Owner
owner Name Repo
reqName Id RepoWebhook
webhookId
createWebhookOpPath owner :: Name Owner
owner reqName :: Name Repo
reqName webhookId :: Id RepoWebhook
webhookId (Just operation :: Text
operation) = Name Owner -> Name Repo -> Id RepoWebhook -> Paths
createBaseWebhookPath Name Owner
owner Name Repo
reqName Id RepoWebhook
webhookId Paths -> Paths -> Paths
forall a. [a] -> [a] -> [a]
++ [Text
operation]