class SessionsController < ApplicationController

  layout proc { request.xhr? ? false : 'splash' }

  skip_before_filter :check_for_previous_confirmed_sessions

  # Intialize new session object for user.
  def new
    if request.xhr?
      render layout: false
    else
      @testimonials = Testimonial.active
      @tutors = User.where(is_featured: true).page(params[:page]).per(params[:per_page])
    end
  end

  # Create new session when user login.
  def create
    if login(params[:session][:email], params[:session][:password], params[:session][:remember_me])
      if session.delete(:init_chat)
        init_chat_with(session.delete(:user_ids))
      end
      @chat_activity = current_user.chat_activities.find_or_create_by(chat_conversation_id: nil)
      @chat_activity.update_columns(minimized: false)
      respond_to do |format|
        format.html { redirect_to after_login_path}
        format.js { redirect_via_turbolinks_to after_login_path}
      end
    else
      respond_to do |format|
        format.html { render 'new'}
        format.js
      end
    end
  end

  # Redirect user to admin_universities page if user is admin or to schedule page if user is tutor or student after login.
  def after_login_path
    unless current_user.super_admin?
      current_user.tutor? ? path = 'courses-tutoring' : 'courses_studying'
      return edit_profile_path(path) unless current_user.is_registration_completed?
      session[:tutoring_session] ? profile_path(session[:tutoring_session][:tutor_id]) : (session.delete(:return_to_url) || personal_calendar_path)
    else
      admin_universities_path
    end
  end

  # To destroy the session when user logout.
  def destroy
    cookies.delete(:profile_question)
    logout
    redirect_to root_url, :notice => 'Bye. You have been logged out.'
  end

end
