diff options
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/invite_codes_controller.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/controllers/invite_codes_controller.rb b/app/controllers/invite_codes_controller.rb new file mode 100644 index 0000000..6a7fef3 --- /dev/null +++ b/app/controllers/invite_codes_controller.rb @@ -0,0 +1,35 @@ +class InviteCodesController < ApplicationController + + respond_to :html + before_filter :require_login + before_filter :require_admin + before_filter :fetch_invite, only: :destroy + + def index + @invite = InviteCode.new # for the creation form. + @invites = InviteCode.all.page(params[:page]).per(APP_CONFIG[:pagination_size]) + respond_with @invites + end + + def create + @invite = InviteCode.new(params[:invite_code]) + @invite.save # throws exception on error (!) + flash[:success] = t('created') + " #{@invite.invite_code}" + rescue + flash[:error] = "could not save invite code" # who knows why, invite.errors is empty + ensure + redirect_to invite_codes_path + end + + def destroy + @invite.destroy + redirect_to invite_codes_path + end + + protected + + def fetch_invite + @invite = InviteCode.find(params[:id]) + end + +end |