class Family::Legacy::Students::Classrooms::GradePostingsController < Family::Controller
  def index
    data = if current_user.family.account_holds.empty? && classroom.viewable_grades?
      grade_postings.map { |g| grade_props(g) }
    else
      []
    end

    render_success :ok, json: data
  end

  private
    def classroom
      @classroom ||= student.classrooms.find_by(id: params[:classroom_id])
    end

    def grade_postings
      student.class_grade_postings
        .by_classroom(classroom.id)
        .by_quarter(params[:quarter])
    end

    def grade_props(grade)
      {
        quarter: grade.quarter,
        number: grade.number,
        real_number: grade.real_number,
        final_number: grade.final_number,
        subject_name: grade.subject&.name,
        viewable_grades: grade.classroom.viewable_grades?
      }
    end
end
