listResponse($schedulers); } public function create(CreateSchedulerRequest $request) { $scheduler = SchedulerFactory::create(auth()->user()->company()->id, auth()->user()->id); return $this->itemResponse($scheduler); } public function store(StoreSchedulerRequest $request) { $scheduler = $this->scheduler_repository->save($request->all(), SchedulerFactory::create(auth()->user()->company()->id, auth()->user()->id)); return $this->itemResponse($scheduler); } public function show(ShowSchedulerRequest $request, Scheduler $scheduler) { return $this->itemResponse($scheduler); } public function update(UpdateSchedulerRequest $request, Scheduler $scheduler) { $this->scheduler_repository->save($request->all(), $scheduler); return $this->itemResponse($scheduler); } public function destroy(DestroySchedulerRequest $request, Scheduler $scheduler) { $this->scheduler_repository->delete($scheduler); return $this->itemResponse($scheduler->fresh()); } public function bulk() { $action = request()->input('action'); if (!in_array($action, ['archive', 'restore', 'delete'])) { return response()->json(['message' => 'Bulk action does not exist'], 400); } $ids = request()->input('ids'); $task_schedulers = Scheduler::withTrashed()->find($this->transformKeys($ids)); $task_schedulers->each(function ($task_scheduler, $key) use ($action) { if (auth()->user()->can('edit', $task_scheduler)) { $this->scheduler_repository->{$action}($task_scheduler); } }); return $this->listResponse(Scheduler::withTrashed()->whereIn('id', $this->transformKeys($ids))); } }