class Admin::Legacy::HumanResources::PositionsController < Admin::Legacy::HumanResources::Controller
  def index
    render_success :ok, json: positions.ordered.map { |d| position_props(d) }
  end

  def show
    render_success :ok, json: position_props(position)
  end

  def create
    position = positions.build(position_params)
    if position.save
      render_success :ok, json: position_props(position)
    else
      render_error :unprocessable_entity, errors: position
    end
  end

  def update
    if position.update(position_params)
      render_success :ok, json: position_props(position)
    else
      render_error :unprocessable_entity, errors: position
    end
  end

  def destroy
    if position.destroy
      render_success :ok
    else
      render_error :unprocessable_entity, errors: position
    end
  end

  private
    def positions
      current_school.positions
    end

    def position
      @position ||= positions.find_by(id: params[:id])
    end

    def position_params
      params.permit(:name, :description, :code, :high, :low, :edfi_id)
    end

    def position_props(position)
      {
        id: position.id,
        name: position.name,
        description: position.description,
        code: position.code,
        high: position.high,
        low: position.low,
        edfi_id: position.edfi_id? ? position.edfi_id : nil
      }
    end
end
