Files
sx-fc/app/controllers/api/authenticate_controller.rb
2022-07-08 16:06:12 +06:30

84 lines
3.0 KiB
Ruby
Executable File

class Api::AuthenticateController < Api::ApiController
skip_before_action :authenticate
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 check_emp_access_code
pin_code = params[:code]
employee = Employee.find_by_emp_id(pin_code)
if employee && (employee.role == "manager" || employee.role == "supervisor")
result = {:status=> true, :message=>"Success" }
else
result = {:status=> false, :message=>"Invalid Access Code" }
end
render :json => result.to_json
end
private
def authenticate_params
params.permit(:emp_id, :password, :session_token)
end
end