class UserPlane::RouteConcerns::Invites

An alternative to the SignUp concern that provides routes to handle sign up via invites.

Public Class Methods

new(defaults = {}) click to toggle source
# File lib/user_plane/route_concerns.rb, line 105
def initialize(defaults = {})
  @users_can_send_invites = defaults.delete(:users_can_send_invites) || true
  super
end

Public Instance Methods

build() click to toggle source
# File lib/user_plane/route_concerns.rb, line 110
def build
  sign_up_options = options(only: [:edit, :update],
                            path_names: {edit: 'redeem'},
                            as: :sign_up_with_invites,
                            param: :code)
  
  mapper.resources :invites,  sign_up_options do
    if exists? :auth_endpoint
      mapper.concerns :auth_endpoint, controller: :invites,
                                      on: :member
    end
  end
  
  if @users_can_send_invites
    mapper.resources :invites, options(only: [:new, :create],
                                       as: :send_sign_up_invites,
                                       constraints: RouteConcerns.signed_in_constraint)
  end
end