class Admin::Legacy::Nursing::MedicationsController < Admin::Legacy::Nursing::Controller
  def index
    render_success :ok, json: medications.ordered.map { |m| medication_props(m) }
  end

  def show
    render_success :ok, json: medication_props(medication)
  end

  def create
    medication = medications.build(medication_params)

    if medication.save
      render_success :ok, object: 'Over the Counter', json: medication_props(medication)
    else
      render_error :unprocessable_entity, errors: medication
    end
  end

  def update
    if medication.update(medication_params)
      render_success :ok, object: 'Over the Counter', json: medication_props(medication)
    else
      render_error :unprocessable_entity, errors: medication
    end
  end

  def destroy
    if medication.destroy
      render_success :ok, object: 'Over the Counter'
    else
      render_error :unprocessable_entity, errors: medication
    end
  end

  private
    def medications
      current_school.nursing_medications
    end

    def medication
      @medication ||= medications.find_by(id: params[:id])
    end

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

    def medication_props(medication)
      {
        id: medication.id,
        name: medication.name,
        description: medication.description
      }
    end
end
