class Users::SessionsController < Devise::SessionsController

  before_action :configure_sign_in_params, only: [:create]

  skip_before_action :check_apartment_active, only: [:new]
  skip_before_action :check_apartment

  before_action :check_apartment_active_when_new,only: [:new]

# before_filter :configure_sign_in_params, only: [:create]

  # GET /resource/sign_in
  def new
    cookies.delete(:my_apartment)
    cookies.delete(:login_do_apartment)
    super
  end

  # POST /resource/sign_in
  def create
    cookies.signed[:login_do_apartment] = {
      value: params[:apartment],
      secure: Settings.app.secure_cookie,
      httponly: true}
    super do
      cookies.delete(:login_do_apartment)
      cookies.signed[:my_apartment] = {
        value: params[:apartment],
        secure: Settings.app.secure_cookie,
        httponly: true}
      resource
    end
  end

  # DELETE /resource/sign_out
  def destroy
    super
    cookies.delete(:my_apartment)
  end

  protected

  # You can put the params you want to permit in the empty array.
  def configure_sign_in_params
    devise_parameter_sanitizer.permit(
      :sign_in,
      keys: [:login,:sign_in_id,:email,:password,:remember_me]
    )
  end

  private
  def will_logout_user_save
    @will_logout_user = current_user
  end

  def check_apartment_active_when_new
    check_apartment_name = if !user_signed_in? && cookies.signed[:login_do_apartment].present?
      cookies.signed[:login_do_apartment]
    else
      params[:apartment]
    end

    if check_apartment_name.present? &&
      Apartment::Tenant.current != check_apartment_name &&
      Apartment.tenant_names.include?(check_apartment_name)
      params[:apartment] = check_apartment_name
      Apartment::Tenant.switch!(check_apartment_name)
    end
    check_apartment_active
  end


end