class Admin::Accounting::SubcategoriesController < Admin::Accounting::Controller
  def show
    render_success :ok, json: subcategory_props(subcategory)
  end

  def create
    subcategory = subcategories.build(subcategory_params)
    if subcategory.save
      render_success :ok
    else
      render_error :unprocessable_entity, json: subcategory
    end
  end

  def update
    if subcategory.update(subcategory_params)
      render_success :ok
    else
      render_error :unprocessable_entity, json: subcategory
    end
  end

  def destroy
    if subcategory.destroy
      render_success :ok
    else
      render_error :unprocessable_entity, json: subcategory
    end
  end

  private
    def subcategories
      current_school.accounting_subcategories
    end

    def subcategory
      @subcategory ||= subcategories.find(params[:id])
    end

    def subcategory_params
      params.require(:subcategory).permit(:name, :category_id)
    end

    def subcategory_props(subcategory)
      {}.tap do |props|
        props[:id] = subcategory.id
        props[:name] = subcategory.name
        props[:category_id] = subcategory.category_id
        props[:category] = subcategory.category.name
        props[:title] = subcategory.decorate.title
      end
    end
end
