saasbook/esaas-engagements

View on GitHub
app/controllers/users_controller.rb

Summary

Maintainability
A
15 mins
Test Coverage
class UsersController < ApplicationController
  before_action :auth_user?, only: [:new, :create, :edit, :update]
  before_action :set_user, only: [:show, :edit, :update, :destroy]
  skip_before_action :verify_authenticity_token, only: [:import]

  def index
    total_user = User.count
    page_default_and_update("user",total_user)
    change_page_num("user",total_user)
    offset = @each_page*(@page_num-1) < 0 ? 0 : @each_page*(@page_num-1)
    @users = User.limit(@each_page).offset(offset)
  end

  def new
    @user = User.new
  end

  def show
  end

  def edit
  end

  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to users_path, notice: 'User successfully created.'
    else
      render 'new'
    end
  end

  def update
    if @user.update(user_params)
      redirect_to users_path, notice: 'User was successfully updated.'
    else
      render 'edit'
    end
  end

  def import
    begin
      User.import(params[:file])
      redirect_to users_path, notice: 'User was successfully imported.'
    rescue StandardError => e  
      redirect_to users_path, notice: e.message
    end
  end

  private
  def set_user
    @user = User.find(params[:id])
  end

  def user_params
    params.
      require(:user).
      permit(:name,:email,:preferred_contact,:github_uid,:user_type,:sid,
        :developing_engagement_id, :coaching_org_id, :profile_picture)
  end
end