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

    render_success :ok, json: data
  end

  private
    def grade_postings
      student.class_grade_postings
        .preload(:subject, :classroom)
        .by_quarter(params[:quarter])
        .by_parent_viewable(student.id)
    end

    def grade_props(grade)
      {
        id: grade.id,
        quarter: grade.quarter,
        number: grade.number,
        letter: grade.letter_grade,
        subject: grade.subject&.name,
        classroom: classroom_props(grade.classroom)
      }
    end

    def classroom_props(classroom)
      {
        id: classroom.id,
        name: classroom.name,
        viewable_grades: classroom.viewable_grades?
      }
    end
end
