# auto_register: false # frozen_string_literal: true require "hanami/action" module EuchreCamp class Action < Hanami::Action include Deps[users_repo: 'repositories.users', players_repo: 'repositories.players'] protected # Get current user from session def current_user(request) user_id = request.session[:user_id] return nil unless user_id users_repo.by_id(user_id) end # Get current player from session def current_player(request) player_id = request.session[:player_id] return nil unless player_id players_repo.by_id(player_id) end # Check if user is logged in def logged_in?(request) !request.session[:user_id].nil? end # Require authentication - redirect to login if not logged in def require_authentication(request, response) unless logged_in?(request) response.flash[:error] = 'Please login to continue' response.redirect_to '/login' end end # Helper to pass current_player to view def render_with_player(request, response, **options) player = current_player(request) response.render(view, current_player: player, **options) end end end