class Admin::Legacy::Service::Students::LogsController < Admin::Legacy::Service::Controller
  include Shared::Legacy::Service::StudentLogsScoped

  def index
    render_success :ok, json: service_logs.map { |l| log_props(l) }
  end

  def show
    render_success :ok, json: log_props(service_log)
  end

  def create
    service_log = service_logs.build(log_params)
    if service_log.save
      render_success :ok, json: log_props(service_log)
    else
      render_error :unprocessable_entity, errors: service_log
    end
  end

  def update
    if service_log.update(log_params)
      render_success :ok, json: log_props(service_log)
    else
      render_error :unprocessable_entity, errors: service_log
    end
  end

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

  private
    def service_logs
      student.service_logs
    end

    def service_log
      @service_log ||= service_logs.find_by(id: params[:id])
    end

    def student
      @student ||= current_school.students.find_by(id: params[:student_id])
    end

    def log_params
      params.permit(:hours, :notes, :datetime, :status, :school_year_id).merge(set_associations)
    end
end
