class Employee::Pathwright::CategoriesController < Employee::Controller
  include CacheHelper

  def index
    data = load_cache('pathwright/categories') do
      categories.includes(:courses).map { |c| category_props(c) }.to_json
    end
    render_success :ok, json: data
  end

  def show
    cache_path = "pathwright/categories/#{params[:id]}"
    data = load_cache(cache_path) { category.to_json(include: :courses) }
    render_success :ok, json: data
  end

  private
    def categories
      Pathwright::Category.all
    end

    def category
      @category ||= categories.find_by(id: params[:id])
    end

    def category_props(category)
      {
        id: category.id,
        name: category.name,
        count: category.courses.count
      }
    end
end
