Sha256: c7c3b3f8a816e9ade9d4a837fab555fa10a423d3701e2115379c8b3ba140ee50

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

require 'active_support'
module Forcast
	module Controller
		module Login
		
		extend ActiveSupport::Concern

		  included do

		  	before_action :set_user, only: [:create_login, :destroy_login]

		  end
		  
		  def create_login
		    raise Application::Error::General.new(t("error_bad_password")) unless @user.is_password?(params[:password])
			validaciones_login(@user)
			h = Hash.new
			h["auth_token"] = @user.generate_auth_token
			h["token_telefono"] = @token_telefono
			json_response(h,t("login_ok"))
		  end


		  def destroy_login
		    raise Application::Error::General.new(t("error_bad_password")) unless @user.is_password?(params[:password])
		    validaciones_login(@user)
		    @user.invalidate_auth_token
		   	json_response('',t("logout_ok")) 
		  end


		 private

		    def set_user
		    	    
		    	@variable = params[:variable]
			    @dato = params[:dato]
			    #raise Application::Error::General.new(t("error_present_mail")) unless params[:mail].present?
			    raise Application::Error::General.new(t("error_present_password")) unless params[:password].present?
			    set_user_using_model if params[:model].present?
			    mm = ''
			    modelo_a_validar.each do |x|
			    	mm = c_to_m(x)
			    	next unless mm.exists?("#{@variable}" => @dato)
			    	user = mm.find_by("#{@variable}" => @dato)
			    	@user ||= user
			    end
			    raise Application::Error::General.new(t("error_not_user")) if @user === nil

		    end

		    def set_user_using_model
			    
			    raise Application::Error::General.new(t("error_present_modelo", params: params[:model])) unless modelo_a_validar.include?(params[:model])
			    mm = ''
			    modelo_a_validar.each do |x|
					next if params[:model] != x
			    	mm = c_to_m(x)
			    end
			   	raise Application::Error::General.new(t("error_not_user", params: @dato)) unless mm.exists?("#{@variable}" => @dato)
			   	@user ||= mm.find_by("#{@variable}" => @dato)

		    end

			def c_to_m(str)
				str.classify.constantize
			end

		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
forcast-0.0.110 lib/forcast/controllers/controller/login/login.rb