Aura.Orgs (Aura v1.0.1)

View Source

Service module for interacting with Hex Organizations

Resources

Summary

Types

Options to modify an Orgs request

Functions

Adds a user to an org with a given role

Grabs an organization, given an org_name

Grabs an org member, given their org_name and username

Grabs a list of members to an organization, given an org_name

Lists all the organizations the requester can see

Streams audit logs, scoped to an organization

Types

org_opts()

@type org_opts() :: [{:repo_url, Aura.Common.repo_url()}]

Options to modify an Orgs request

Keys

Functions

add_org_member(org_name, username, role, opts \\ [])

@spec add_org_member(
  org_name :: Aura.Common.org_name(),
  username :: Aura.Common.username(),
  role :: Aura.Model.HexOrgMember.role(),
  opts :: org_opts()
) :: {:ok, Aura.Model.HexOrgMember.t()} | {:error, any()}

Adds a user to an org with a given role

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
usernameAura.Common.username/0
roleAura.Model.HexOrgMember.role/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
POST/orgs/:org_name/membersOrganizationUserController:create

change_member_role(org_name, username, new_role, opts \\ [])

@spec change_member_role(
  org_name :: Aura.Common.org_name(),
  username :: Aura.Common.username(),
  new_role :: Aura.Model.HexOrgMember.role(),
  opts :: org_opts()
) :: {:ok, Aura.Model.HexOrgMember.t()} | {:error, any()}

Changes a user's role to new_role

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
usernameAura.Common.username/0
new_roleAura.Model.HexOrgMember.role/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
POST/orgs/:org_name/members/:usernameOrganizationUserController:update

get_org(org_name, opts \\ [])

@spec get_org(org_name :: Aura.Common.org_name(), opts :: org_opts()) ::
  {:ok, Aura.Model.HexOrg.t()} | {:error, any()}

Grabs an organization, given an org_name

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/orgs/:org_nameOrganizationController:show

Examples

iex> alias Aura.Orgs
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, org} = Orgs.get_org("test_org", opts)
iex> org.name
"test_org"

get_org_member(org_name, username, opts \\ [])

@spec get_org_member(
  org_name :: Aura.Common.org_name(),
  username :: Aura.Common.username(),
  opts :: org_opts()
) :: {:ok, Aura.Model.HexOrgMember.t()} | {:error, any()}

Grabs an org member, given their org_name and username

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
usernameAura.Common.username/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/orgs/:org_name/members/:usernameOrganizationUserController:show

Examples

iex> alias Aura.Orgs
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, member} = Orgs.get_org_member("test_org", "testuser", opts)
iex> member.username
"testuser"

list_org_members(org_name, opts \\ [])

@spec list_org_members(org_name :: Aura.Common.org_name(), opts :: org_opts()) ::
  {:ok, Aura.Model.HexOrgMember.t()} | {:error, any()}

Grabs a list of members to an organization, given an org_name

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/orgs/:org_name/membersOrganizationUserController:index

Examples

iex> alias Aura.Orgs
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, members} = Orgs.list_org_members("test_org", opts)
iex> Enum.empty?(members)
false

list_orgs(opts \\ [])

@spec list_orgs(opts :: org_opts()) ::
  {:ok, [Aura.Model.HexOrg.t()]} | {:error, any()}

Lists all the organizations the requester can see

Parameters

ParameterDescription
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
GET/orgsOrganizationController:index

Examples

iex> alias Aura.Orgs
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, orgs} = Orgs.list_orgs(opts)
iex> Enum.empty?(orgs)
false

remove_org_member(org_name, username, opts \\ [])

@spec remove_org_member(
  org_name :: Aura.Common.org_name(),
  username :: Aura.Common.username(),
  opts :: org_opts()
) :: :ok | {:error, any()}

Removes a user from an org

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
usernameAura.Common.username/0
opts[:repo_url]Aura.Common.repo_url/0

API Details

MethodPathControllerAction
DELETE/orgs/:org_name/members/:usernameOrganizationUserController:delete

stream_audit_logs(org_name, opts \\ [])

@spec stream_audit_logs(
  org_name :: Aura.Common.org_name(),
  opts :: Aura.Common.audit_opts()
) ::
  Enumerable.t()

Streams audit logs, scoped to an organization

Note that the page size is fixed by the API to be 100 per page.

Parameters

ParameterDescription
org_nameAura.Common.org_name/0
opts[:repo_url]Aura.Common.repo_url/0
opts[:page]Aura.Common.start_page/0

API Details

MethodPathControllerAction
GET/orgs/:org_name/audit-logsOrganizationController:audit_logs

Examples

iex> alias Aura.Orgs
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> [first, _second] = Orgs.stream_audit_logs("test_org", opts) |> Enum.take(2)
iex> String.starts_with?(first.user_agent, "aura")
true