class OneRoster::TeachersController < OneRoster::Controller
  include OneRoster::UserScoped

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

  def index
    render_success :ok, json: { users: bind_and_parse(teachers.map { |t| user_props(t) }) }
  end

  def show
    render_success :ok, json: { user: user_props(teacher) }
  end

  private
    def teachers
      @teachers ||= current_school.teachers
    end

    def teacher
      @teacher ||= current_school.send(model).find_by(id: id)
    end

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