class Admin::Administration::GradesController < Admin::Administration::Controller
  def show
    render_success :ok, json: school_props
  end

  def update
    if current_school.update(school_params)
      render_success :ok, object: :grades, json: school_props
    else
      render_error :unprocessable_entity, errors: current_school
    end
  end

  private
    def grades
      current_school.grades
    end

    def school_params
      params.permit(
        :first_grade_offered,
        :last_grade_offered,
        school_grades_attributes: [:id, :grade, :name, :external, :edfi_grade]
      )
    end

    def grade_params(params)
      params.permit(:grade, :name, :external, :edfi_grade)
    end

    def school_props
      {}.tap do |props|
        props[:first_grade_offered] = current_school.first_grade_offered
        props[:last_grade_offered] = current_school.last_grade_offered
        props[:school_grades_attributes] = grades.map { |g| grade_props(g) }
        props[:edfi] = current_school.ed_fi_system?
      end
    end

    def grade_props(grade)
      {
        id: grade.id,
        name: grade.name,
        external: grade.external,
        edfi_grade: grade.edfi_grade,
        grade: grade.grade
      }
    end
end
