class Admin::Library::Items::TypesController < Admin::Library::Controller
  def index
    render_success :ok, json: item_types.order(:name).map { |t| item_type_props(t) }
  end

  def show
    render_success :ok, json: item_type_props(item_type)
  end

  def create
    item_type = item_types.build(item_type_params)
    if item_type.save
      render_success :ok
    else
      render_error :unprocessable_entity, errors: item_type
    end
  end

  def update
    if item_type.update(item_type_params)
      render_success :ok
    else
      render_error :unprocessable_entity, errors: item_type
    end
  end

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

  private
    def item_types
      current_school.library_item_types
    end

    def item_type
      @item_type ||= item_types.find_by(id: params[:id])
    end

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

    def item_type_props(item_type)
      {
        id: item_type.id,
        name: item_type.name,
        description: item_type.description
      }
    end
end
