pupilfirst/pupilfirst

View on GitHub
app/controllers/communities_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
B
84%
class CommunitiesController < ApplicationController
  before_action :authenticate_user!
  layout 'student'

  # GET /communities/:id
  def show
    @community = authorize(Community.find(params[:id]))
    target
  end

  # GET /community/:community_id/new_topic
  def new_topic
    @community = authorize(Community.find(params[:id]))
    target
  end

  private

  def page
    @page ||= begin
      page = params[:page].to_i
      page.zero? ? 1 : page
    end
  end

  def target
    return unless @community.target_linkable?

    @target ||= if params[:target_id].present?
      t = Target.find_by(id: params[:target_id])

      # Only return the target if the target is in a course that is linked to this community.
      @community.courses.exists?(id: t&.course) ? t : nil
    end
  end
end