module GitHub.Endpoints.Organizations.Teams (
teamsOf,
teamsOf',
teamsOfR,
teamInfoFor,
teamInfoFor',
teamInfoForR,
createTeamFor',
createTeamForR,
editTeam',
editTeamR,
deleteTeam',
deleteTeamR,
listTeamMembersR,
teamMembershipInfoFor,
teamMembershipInfoFor',
teamMembershipInfoForR,
addTeamMembershipFor',
addTeamMembershipForR,
deleteTeamMembershipFor',
deleteTeamMembershipForR,
listTeamsCurrent',
listTeamsCurrentR,
module GitHub.Data,
) where
import Prelude ()
import Prelude.Compat
import Data.Aeson.Compat (encode)
import Data.Vector (Vector)
import GitHub.Data
import GitHub.Request
teamsOf' :: Maybe Auth -> Name Organization -> IO (Either Error (Vector SimpleTeam))
teamsOf' auth org =
executeRequestMaybe auth $ teamsOfR org Nothing
teamsOf :: Name Organization -> IO (Either Error (Vector SimpleTeam))
teamsOf = teamsOf' Nothing
teamsOfR :: Name Organization -> Maybe Count -> Request k (Vector SimpleTeam)
teamsOfR org = PagedQuery ["orgs", toPathPart org, "teams"] []
teamInfoFor' :: Maybe Auth -> Id Team -> IO (Either Error Team)
teamInfoFor' auth tid =
executeRequestMaybe auth $ teamInfoForR tid
teamInfoFor :: Id Team -> IO (Either Error Team)
teamInfoFor = teamInfoFor' Nothing
teamInfoForR :: Id Team -> Request k Team
teamInfoForR tid =
Query ["teams", toPathPart tid] []
createTeamFor' :: Auth
-> Name Organization
-> CreateTeam
-> IO (Either Error Team)
createTeamFor' auth org cteam =
executeRequest auth $ createTeamForR org cteam
createTeamForR :: Name Organization -> CreateTeam -> Request 'True Team
createTeamForR org cteam =
Command Post ["orgs", toPathPart org, "teams"] (encode cteam)
editTeam' :: Auth
-> Id Team
-> EditTeam
-> IO (Either Error Team)
editTeam' auth tid eteam =
executeRequest auth $ editTeamR tid eteam
editTeamR :: Id Team -> EditTeam -> Request 'True Team
editTeamR tid eteam =
Command Patch ["teams", toPathPart tid] (encode eteam)
deleteTeam' :: Auth -> Id Team -> IO (Either Error ())
deleteTeam' auth tid =
executeRequest auth $ deleteTeamR tid
deleteTeamR :: Id Team -> Request 'True ()
deleteTeamR tid =
Command Delete ["teams", toPathPart tid] mempty
listTeamMembersR :: Id Team -> TeamMemberRole -> Maybe Count -> Request 'True (Vector SimpleUser)
listTeamMembersR tid r = PagedQuery ["teams", toPathPart tid, "members"] [("role", Just r')]
where
r' = case r of
TeamMemberRoleAll -> "all"
TeamMemberRoleMaintainer -> "maintainer"
TeamMemberRoleMember -> "member"
teamMembershipInfoFor' :: Maybe Auth -> Id Team -> Name Owner -> IO (Either Error TeamMembership)
teamMembershipInfoFor' auth tid user =
executeRequestMaybe auth $ teamMembershipInfoForR tid user
teamMembershipInfoForR :: Id Team -> Name Owner -> Request k TeamMembership
teamMembershipInfoForR tid user =
Query ["teams", toPathPart tid, "memberships", toPathPart user] []
teamMembershipInfoFor :: Id Team -> Name Owner -> IO (Either Error TeamMembership)
teamMembershipInfoFor = teamMembershipInfoFor' Nothing
addTeamMembershipFor' :: Auth -> Id Team -> Name Owner -> Role-> IO (Either Error TeamMembership)
addTeamMembershipFor' auth tid user role =
executeRequest auth $ addTeamMembershipForR tid user role
addTeamMembershipForR :: Id Team -> Name Owner -> Role -> Request 'True TeamMembership
addTeamMembershipForR tid user role =
Command Put ["teams", toPathPart tid, "memberships", toPathPart user] (encode $ CreateTeamMembership role)
deleteTeamMembershipFor' :: Auth -> Id Team -> Name Owner -> IO (Either Error ())
deleteTeamMembershipFor' auth tid user =
executeRequest auth $ deleteTeamMembershipForR tid user
deleteTeamMembershipForR :: Id Team -> Name Owner -> Request 'True ()
deleteTeamMembershipForR tid user =
Command Delete ["teams", toPathPart tid, "memberships", toPathPart user] mempty
listTeamsCurrent' :: Auth -> IO (Either Error (Vector Team))
listTeamsCurrent' auth = executeRequest auth $ listTeamsCurrentR Nothing
listTeamsCurrentR :: Maybe Count -> Request 'True (Vector Team)
listTeamsCurrentR = PagedQuery ["user", "teams"] []