class OneRoster::Classes::TeachersController < OneRoster::Controller
  include OneRoster::EnrollmentScoped

  before_action :authorize_roster_scope
  before_action :validate_school_id, only: :index
  after_action :set_total_count_header, only: :index

  def index
    data = bind_and_parse(enrollments.map { |e| enrollment_props(e) })
    render_success :ok, json: { enrollments: data }
  end

  private
    def enrollments
      class_id = decode_source_id(params[:class_id])['id'].to_i

      @enrollments ||= current_school.class_teachers
        .preload(:classroom, :employee)
        .joins(:employee)
        .by_classroom(class_id)
        .distinct
    end

    def set_total_count_header
      response.set_header('X-Total-Count', enrollments.count.to_s)
    end
end
