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(@shop, 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