getModelType($request->input('type')); $this->updatePostItems($request,$class,TRUE); return redirect()->action( sprintf('%s@deletes',$this->controller($request->input('type'))), sprintf('?page=%s',$request->input('page')) ); } public function duplicatesUpdate(Request $request) { $class = $this->getModelType($request->input('type')); $this->updatePostItems($request,$class); return redirect()->action( sprintf('%s@duplicates',$this->controller($request->input('type'))), sprintf('?page=%s',$request->input('page')) ); } private function updatePostItems(Request $request,string $class,bool $delete=FALSE) { foreach ($request->input('items') as $id) { try { $o = $class::findOrFail($id); } catch (ModelNotFoundException $e) { Log::alert('Object not found: '.$id); continue; } catch (\Exception $e) { dd($e); } // Set if duplicate $o->duplicate = $request->input('duplicate.'.$id) ? 1 : NULL; // Set if ignore duplicate $o->ignore_duplicate = $request->input('ignore_duplicate.'.$id) ? 1 : NULL; // Set if flag $o->flag = $request->input('flag.'.$id) ? 1 : NULL; // Set if delete if ($delete AND $o->remove AND ($request->input('remove.'.$id) ? 1 : NULL)) { switch (strtolower($request->input('type'))) { case 'photo': $this->dispatch((new PhotoDelete($o))->onQueue('delete')); Log::info(sprintf('Dispatching delete for [%s]',$o->id)); break; case 'video': $this->dispatch((new VideoDelete($o))->onQueue('delete')); Log::info(sprintf('Dispatching delete for [%s]',$o->id)); break; default: Log::info(sprintf('Ignoring delete for [%s] - not configured (%s).',$o->id,$class)); } } else { $o->remove = $request->input('remove.'.$id) ? 1 : NULL; } $o->save(); } } }