public function index()
 {
     $urls = [];
     $routes = Route::getRoutes();
     foreach ($routes as $route) {
         $path = $route->getPath();
         $actions = $route->getAction();
         $params = $route->parameterNames();
         $controller = $actions['controller'];
         if (starts_with($path, '_') or str_contains($controller, 'RedirectController') or count($params)) {
             continue;
         }
         $urls[] = url($path);
     }
     foreach (Campus::all() as $item) {
         $urls[] = url($item->url);
     }
     foreach (Event::all() as $item) {
         $urls[] = url($item->url);
     }
     foreach (Series::withDrafts()->get() as $item) {
         $urls[] = url($item->url);
     }
     foreach (Staff::all() as $item) {
         $urls[] = url($item->url);
     }
     foreach (MissionLocation::all() as $item) {
         $urls[] = url($item->url);
     }
     foreach (Video::withDrafts()->get() as $item) {
         $urls[] = url($item->url);
     }
     return response()->json($urls);
 }
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router $router
  * @return void
  */
 public function boot(Router $router)
 {
     //
     parent::boot($router);
     $router->model('campus', 'FaithPromise\\Shared\\Models\\Campus');
     $router->model('study', 'FaithPromise\\Shared\\Models\\Study');
     $router->model('event', 'FaithPromise\\Shared\\Models\\Event');
     $router->model('organization', 'FaithPromise\\Shared\\Models\\Organization');
     $router->model('staff', 'FaithPromise\\Shared\\Models\\Staff');
     $router->model('series', 'FaithPromise\\Shared\\Models\\Series');
     $router->bind('series_video', function ($value, $route) {
         $series = $route->parameter('series');
         return \FaithPromise\Shared\Models\Video::where('series_id', '=', $series->id)->where('slug', '=', $value)->first();
     });
 }
 private function getItem($id)
 {
     return Video::withDrafts()->with(['speaker' => function ($query) {
         $query->select('id', 'slug', 'display_name');
     }])->find($id);
 }
 private function importVideos()
 {
     $table = 'videos';
     $items = $this->getVideos();
     Video::unguard();
     DB::table($table)->truncate();
     foreach ($items as $item) {
         $series = Series::findBySlug($item->series_slug);
         $speaker = Staff::findBySlug($item->speaker_slug);
         $data = get_object_vars($item);
         unset($data['series_slug']);
         unset($data['speaker_slug']);
         $model = new Video($data);
         $model->series_id = $series->id;
         $model->speaker_id = is_null($speaker) ? null : $speaker->id;
         $model->save();
     }
 }
 public function video($series, $video)
 {
     $videos = Video::with('Series')->where('series_id', '=', $series->id)->orderBy('sermon_date', 'asc')->get();
     return view('series_video', ['series' => $series, 'video' => $video, 'videos' => $videos]);
 }