/** * Update the specified resource in storage. * * @param int $id * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function update($id, Request $request) { $event = Event::findOrFail($id); $event->title = $request->title; $event->intro = $request->intro; $event->description = $request->description; $event->vortex_url = $request->vortex_url; $event->facebook_id = $request->facebook_id; $event->start_date = new Carbon($request->start_date); $event->location = $request->location; if (!$request->youtube_playlist_id) { $event->youtube_playlist_id = null; } else { $youtubePlaylist = YoutubePlaylist::find($request->youtube_playlist_id); $event->youtube_playlist_id = $youtubePlaylist->id; } $event->save(); // Organizers: TODO $p1 = $event->presentations[0]; $p1->start_time = $request->p1_start_time; $p1->end_time = $request->p1_end_time; // ... $p1->save(); if ($request->has('p1_person1')) { // TODO } if ($request->has('p1_youtube_id')) { $recording = Recording::where('presentation_id', '=', $p1->id)->first(); if (!is_null($recording)) { if ($recording->id != $request->p1_youtube_id) { $recording->presentation_id = null; } } $recording = Recording::where('youtube_id', '=', $request->p1_youtube_id)->first(); if (is_null($recording)) { die("TODO: Video not found, redirect back with meaningful error message"); } $recording->presentation_id = $p1->id; $recording->save(); } return redirect()->action('EventsController@show', $event->id)->with('status', 'Arrangementet ble oppdatert.'); }
public function harvestPlaylists() { $items = $this->playlists(['mine' => true]); $ids = []; foreach ($items as $response) { $id = $response->id; echo "- " . $response->snippet->title . "\n"; $playlist = \App\YoutubePlaylist::firstOrCreate(['youtube_id' => $id]); $playlist->is_public = $response->status->privacyStatus == 'public'; $playlist->title = $response->snippet->title; $playlist->description = $response->snippet->description; $playlist->save(); $this->harvestPlaylistVideos($id); $ids[] = $id; } // TODO: Delete any playlists in DB with youtube_id NOT IN $ids }