75 lines
2.7 KiB
Ruby
Executable File
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
|