Files
sx-fc/app/controllers/api/authenticate_controller.rb

75 lines
2.7 KiB
Ruby
Executable File

class Api::AuthenticateController < Api::ApiController
skip_before_action :authenticate
# before_action :find_shop
def create
emp_id = params[:emp_id]
password = params[:password]
if emp_id && password
@employee = Employee.login(emp_id, password)
if @employee && @employee.role == "waiter"
render json: JSON.generate({:status => true, :session_token => @employee.token_session, :name => @employee.name, :role => @employee.role})
else
render json: JSON.generate({:status => false, :error_message => "Bad Emp_ID or Password."})
end
else
render json: JSON.generate({:status => false, :error_message => "Input Parameters missing."})
end
end
def create_cashier
emp_id = params[:emp_id]
password = params[:password]
@terminals = []
if emp_id && password
@employee = Employee.login(emp_id, password)
if @employee && @employee.role == "cashier"
if @employee.is_active
shift = ShiftSale.current_open_shift(@employee)
if !shift.nil?
@status = true
@shift_id = shift.id
# render json: JSON.generate({:status => true, :session_token => @employee.token_session, :name => @employee.name, :role => @employee.role})
else
@status = true
@terminals = CashierTerminal.available.is_active
@error_message = "No current shift open for this employee!"
# render json: JSON.generate({:status => true, :session_token => @employee.token_session, :name => @employee.name, :role => @employee.role, :error_message => "No current shift open for this employee!", :terminals => terminals.to_json})
end
else
@status = false
@error_message = "This employee is not active!"
# render json: JSON.generate({:status => false, :error_message => "This employee is not active!"})
end
else
@status = false
@error_message = "Bad Emp_ID or Password!"
# render json: JSON.generate({:status => false, :error_message => "Bad Emp_ID or Password."})
end
else
@status = false
@error_message = "Input Parameters missing!"
# render json: JSON.generate({:status => false, :error_message => "Input Parameters missing."})
end
end
def destroy
logout_status = Employee.logout(params[:session_token])
if logout_status
render json: JSON.generate({:status => true})
else
render json: JSON.generate({:status => false, :error_message => "Session Token Invalid or Missing"})
end
end
def authenticate_params
params.permit(:emp_id, :password, :session_token)
end
private
def find_shop
@shop = Shop.find_by_shop_code(params[:shop_code])
end
end