class Admin::TimeCard::TasksController < Admin::Controller
  def index
    render_success :ok, json: tasks.map { |c| task_props(c) }
  end

  def show
    render_success :ok, json: task_props(task)
  end

  def create
    task = tasks.build(task_params)

    if task.save
      render_success :ok, json: task_props(task)
    else
      render_error :unprocessable_entity, errors: task
    end
  end

  def update
    if task.update(task_params)
      render_success :ok, json: task_props(task)
    else
      render_error :unprocessable_entity, errors: task
    end
  end

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

  private
    def tasks
      current_school.time_card_tasks
    end

    def task
      @task ||= tasks.find_by(id: params[:id])
    end

    def task_params
      params.permit(:name, :code, :description, :time_off)
    end

    def task_props(task)
      {
        id: task.id,
        code: task.code,
        name: task.name,
        description: task.description,
        time_off: task.time_off
      }
    end
end
