class Admin::Library::Items::ConditionsController < Admin::Library::Controller
  def index
    render_success :ok, json: conditions.order(:name).map { |c| condition_props(c) }
  end

  def show
    render_success :ok, json: condition_props(condition)
  end

  def create
    condition = conditions.build(condition_params)
    if condition.save
      render_success :ok
    else
      render_error :unprocessable_entity, errors: condition
    end
  end

  def update
    if condition.update(condition_params)
      render_success :ok
    else
      render_error :unprocessable_entity, errors: condition
    end
  end

  def destroy
    if condition.destroy
      render_success :ok
    else
      render_error :unprocessable_entity
    end
  end

  private
    def conditions
      current_school.library_item_conditions
    end

    def condition
      @condition ||= conditions.find_by(id: params[:id])
    end

    def condition_params
      params.permit(:name, :description)
    end

    def condition_props(condition)
      {
        id: condition.id,
        name: condition.name,
        description: condition.description
      }
    end
end
