Class: UserPlane::RouteConcerns::Invites

Inherits:
AbstractNamespacedConcern show all
Defined in:
lib/user_plane/route_concerns.rb

Overview

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

Instance Attribute Summary

Attributes inherited from AbstractConcern

#concern_options, #mapper

Instance Method Summary collapse

Methods inherited from AbstractNamespacedConcern

#call

Methods inherited from AbstractConcern

#call, #exists?, #options

Constructor Details

#initialize(defaults = {}) ⇒ Invites

Returns a new instance of Invites.



105
106
107
108
# 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

Instance Method Details

#buildObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/user_plane/route_concerns.rb', line 110

def build
   = options(only: [:edit, :update],
                            path_names: {edit: 'redeem'},
                            as: :sign_up_with_invites,
                            param: :code)
  
  mapper.resources :invites,   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