module DiscourseApi::API::Invite

Public Instance Methods

destroy_all_expired_invites() click to toggle source
# File lib/discourse_api/api/invite.rb, line 67
def destroy_all_expired_invites
  post("invites/destroy-all-expired")
end
destroy_invite(invite_id) click to toggle source
# File lib/discourse_api/api/invite.rb, line 79
def destroy_invite(invite_id)
  delete("/invites", { id: invite_id })
end
disposable_tokens(params = {}) click to toggle source

requires this plugin => github.com/discourse/discourse-invite-tokens

# File lib/discourse_api/api/invite.rb, line 44
def disposable_tokens(params = {})
  post("/invite-token/generate", params)
end
invite_to_topic(topic_id, params = {}) click to toggle source
# File lib/discourse_api/api/invite.rb, line 29
def invite_to_topic(topic_id, params = {})
  args = API.params(params).optional(:email, :user, :group_ids, :custom_message).to_h

  post("/t/#{topic_id}/invite", args)
end
invite_user(params = {}) click to toggle source
# File lib/discourse_api/api/invite.rb, line 5
def invite_user(params = {})
  args =
    API
      .params(params)
      .optional(
        :email,
        :skip_email,
        :custom_message,
        :max_redemptions_allowed,
        :topic_id,
        :group_ids,
        :expires_at,
      )
      .to_h

  post("/invites", args)
end
invite_user_to_topic(params = {}) click to toggle source

TODO: Deprecated. Remove after 20220506

# File lib/discourse_api/api/invite.rb, line 24
def invite_user_to_topic(params = {})
  deprecated(__method__, "invite_to_topic")
  invite_to_topic(params[:topic_id], params)
end
resend_all_invites() click to toggle source
# File lib/discourse_api/api/invite.rb, line 71
def resend_all_invites
  post("invites/reinvite-all")
end
resend_invite(email) click to toggle source
# File lib/discourse_api/api/invite.rb, line 75
def resend_invite(email)
  post("invites/reinvite", { email: email })
end
retrieve_invite(params = {}) click to toggle source
# File lib/discourse_api/api/invite.rb, line 35
def retrieve_invite(params = {})
  args = API.params(params).required(:email).to_h

  response = get("invites/retrieve.json", args)

  response.body
end
update_invite(invite_id, params = {}) click to toggle source
# File lib/discourse_api/api/invite.rb, line 48
def update_invite(invite_id, params = {})
  args =
    API
      .params(params)
      .optional(
        :topic_id,
        :group_ids,
        :group_names,
        :email,
        :send_email,
        :custom_message,
        :max_redemptions_allowed,
        :expires_at,
      )
      .to_h

  put("invites/#{invite_id}", args)
end