|
class AgentsController < ApplicationController
before_action :set_agent_dashboard, only: [:dashboard, :directing_missions, :rewards, :received_reward, :not_received_reward]
def dashboard
end
def directing_missions
end
def list
@users = User.all.where("sign_in_count > ?", 0).where("first_name != ?", "").order('created_at DESC')
end
def show
@user = User.find_by_id(params[:id])
end
def rewards
if params[:view] == nil || params[:view] == 'recent'
@current_rewards = UserReward.where(user: current_user).where(received: nil)
elsif params[:view] == 'all'
@current_rewards = UserReward.where(user: current_user)
elsif params[:view] == 'received'
@current_rewards = UserReward.where(user: current_user).where(received: true)
elsif params[:view] == 'not_received'
@current_rewards = UserReward.where(user: current_user).where(received: false)
end
end
def received_reward
user_reward = UserReward.find(params[:id])
user_reward.update(received: true, date_received: Time.now)
@analytics.track('Reward received')
redirect_to(user_rewards_path(view: 'received'), notice: (t 'reward.marked_as_received'))
end
def not_received_reward
user_reward = UserReward.find(params[:id])
user_reward.update(received: false, date_received: Time.now)
@analytics.track('Reward not received')
redirect_to(user_rewards_path(view: 'not_received'), notice: (t 'reward.marked_as_not_received'))
end
private
def set_agent_dashboard
if user_signed_in?
@agent_missions = current_user.mission_agents
@directing_missions = Mission.where(owner_id: current_user.id)
@rewards = UserReward.where(user_id: current_user.id)
else
redirect_to(new_user_session_path, alert: (t 'agent.not_logged_in'))
end
end
end
|