nekomaho/task-controller

View on GitHub
app/controllers/concerns/relation_task.rb

Summary

Maintainability
A
0 mins
Test Coverage
# next and previous task operations
module RelationTask
  extend ActiveSupport::Concern
  include LoginUserTask

  def add_relation_to_current(add_task_param, current_task_param, sym_func_name)
    add_task, current = search_add_task(add_task_param, current_task_param)
    unless check_login_user_task?(current) && current.same_project_task?(add_task)
      return redirect_to(top_index_url)
    end
    add_func = current.method(sym_func_name)
    add_func.call(add_task)
    redirect_to(project_tasks_path(Project.find(current.project_id)))
  end

  def delete_relation_from_current(delete_task_id, current_task_id, sym_func_name)
    delete_task, current = search_delete_task(delete_task_id, current_task_id)
    return redirect_to(top_index_url) unless check_login_user_task?(current)
    delete_func = current.method(sym_func_name)
    delete_func.call(delete_task)
    redirect_to(project_tasks_path(Project.find(current.project_id)))
  end

  def search_add_task(add_task, current_task)
    [Task.find(add_task[:id]), Task.find(current_task)]
  end

  def search_delete_task(delete_task_id, current_task_id)
    [Task.find(delete_task_id), Task.find(current_task_id)]
  end
  module_function :search_add_task
  module_function :search_delete_task
end