Gamend.Groups.JoinRequests (gamend_core v1.0.1192)

Copy Markdown View Source

Join requests for private groups: requesting, listing, approving, rejecting, and cancelling.

Public API is re-exported by Gamend.Groups.

Summary

Functions

Approve a pending join request. Admin only.

Cancel (delete) a pending join request. Only the requesting user can cancel.

List pending join requests for a group (admin only).

List pending join requests sent by a user.

Reject a pending join request. Admin only.

Request to join a private group. Creates a pending join request.

Functions

approve_join_request(admin_id, request_id)

@spec approve_join_request(Ecto.UUID.t(), Ecto.UUID.t()) ::
  {:ok, Gamend.Groups.GroupMember.t()} | {:error, atom()}

Approve a pending join request. Admin only.

cancel_join_request(user_id, request_id)

@spec cancel_join_request(Ecto.UUID.t(), Ecto.UUID.t()) ::
  {:ok, Gamend.Groups.GroupJoinRequest.t()} | {:error, atom()}

Cancel (delete) a pending join request. Only the requesting user can cancel.

count_join_requests(group_id)

@spec count_join_requests(Ecto.UUID.t()) :: non_neg_integer()

list_join_requests(admin_id, group_id, opts \\ [])

@spec list_join_requests(Ecto.UUID.t(), Ecto.UUID.t(), keyword()) ::
  {:ok, [Gamend.Groups.GroupJoinRequest.t()]} | {:error, atom()}

List pending join requests for a group (admin only).

list_user_pending_requests(user_id)

@spec list_user_pending_requests(Ecto.UUID.t()) :: [
  Gamend.Groups.GroupJoinRequest.t()
]

List pending join requests sent by a user.

reject_join_request(admin_id, request_id)

@spec reject_join_request(Ecto.UUID.t(), Ecto.UUID.t()) ::
  {:ok, Gamend.Groups.GroupJoinRequest.t()} | {:error, atom()}

Reject a pending join request. Admin only.

request_join(user_id, group_id)

@spec request_join(Ecto.UUID.t(), Ecto.UUID.t()) ::
  {:ok, Gamend.Groups.GroupJoinRequest.t()} | {:error, atom()}

Request to join a private group. Creates a pending join request.