{-# LANGUAGE DataKinds #-} module Hercules.API.Repos where import Hercules.API.Accounts.Account (Account) import Hercules.API.Prelude import Hercules.API.Repos.Repo (Repo) import Hercules.API.Repos.RepoKey (RepoKey) import Servant.API data ReposAPI auth f = ReposAPI { forall auth f. ReposAPI auth f -> f :- (Summary "Repositories that the account owns or has explicit access to." :> ("accounts" :> (Capture' '[Required, Strict] "accountId" (Id Account) :> ("repos" :> (auth :> Get '[JSON] [Repo]))))) reposByOwner :: f :- Summary "Repositories that the account owns or has explicit access to." :> "accounts" :> Capture' '[Required, Strict] "accountId" (Id Account) :> "repos" :> auth :> Get '[JSON] [Repo], forall auth f. ReposAPI auth f -> f :- (Summary "Parse a git remote URL into site, owner and repo. Returns 400 if invalid, 404 if the site can not be determined. Does provide any guarantee that the repository exists." :> ("parse-git-url" :> (QueryParam' '[Required, Strict] "gitURL" Text :> (auth :> Get '[JSON] RepoKey)))) parseGitURL :: f :- Summary "Parse a git remote URL into site, owner and repo. Returns 400 if invalid, 404 if the site can not be determined. Does provide any guarantee that the repository exists." :> "parse-git-url" :> QueryParam' '[Required, Strict] "gitURL" Text :> auth :> Get '[JSON] RepoKey } deriving (forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall auth f x. Rep (ReposAPI auth f) x -> ReposAPI auth f forall auth f x. ReposAPI auth f -> Rep (ReposAPI auth f) x $cto :: forall auth f x. Rep (ReposAPI auth f) x -> ReposAPI auth f $cfrom :: forall auth f x. ReposAPI auth f -> Rep (ReposAPI auth f) x Generic)