Skip to main content

lib/api/enterprise_teams/enterprise_teams.ex

# Generated by `mix github.gen` from docs/github-api/api.github.com.json.
# Do not edit by hand; re-run the task instead.

defmodule Noizu.Github.Api.EnterpriseTeams do
  @moduledoc """
  GitHub `enterprise-teams` API.
  """
  import Noizu.Github

  @doc """
  Create an enterprise team

  @see https://docs.github.com/rest/enterprise-teams/enterprise-teams#create-an-enterprise-team
  """
  def create(enterprise, body, options \\ nil) do
    url = github_base() <> "/enterprises/#{enterprise}/teams"
    body = body
    api_call(:post, url, body, Noizu.Github.EnterpriseTeam, options)
  end

  @doc """
  Delete an enterprise team

  @see https://docs.github.com/rest/enterprise-teams/enterprise-teams#delete-an-enterprise-team
  """
  def delete(enterprise, team_slug, options \\ nil) do
    url = github_base() <> "/enterprises/#{enterprise}/teams/#{team_slug}"
    body = %{}
    api_call(:delete, url, body, Noizu.Github.Raw, options)
  end

  @doc """
  Get an enterprise team

  @see https://docs.github.com/rest/enterprise-teams/enterprise-teams#get-an-enterprise-team
  """
  def get(enterprise, team_slug, options \\ nil) do
    url = github_base() <> "/enterprises/#{enterprise}/teams/#{team_slug}"
    body = %{}
    api_call(:get, url, body, Noizu.Github.EnterpriseTeam, options)
  end

  @doc """
  List enterprise teams

  @see https://docs.github.com/rest/enterprise-teams/enterprise-teams#list-enterprise-teams
  """
  def list(enterprise, options \\ nil) do
    url =
      (
        query =
          [
            get_field(:per_page, options, nil),
            get_field(:page, options, nil)
          ]
          |> Enum.filter(& &1)

        qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
        github_base() <> "/enterprises/#{enterprise}/teams" <> qs
      )

    body = %{}
    api_call(:get, url, body, Noizu.Github.Collection.EnterpriseTeam, options)
  end

  @doc """
  Update an enterprise team

  @see https://docs.github.com/rest/enterprise-teams/enterprise-teams#update-an-enterprise-team
  """
  def update(enterprise, team_slug, body, options \\ nil) do
    url = github_base() <> "/enterprises/#{enterprise}/teams/#{team_slug}"
    body = body
    api_call(:patch, url, body, Noizu.Github.EnterpriseTeam, options)
  end
end