コード例 #1
0
 /**
  * Save podcasts from uploaded opml file.
  *
  * @param  Request  $request
  * @return Response
  */
 public function postPodcastsByOpml(Request $request, FeedService $parser)
 {
     if (!$request->hasFile('xml')) {
         return response()->json(['error' => 'No file.'], $status = 500);
     } elseif (!$request->file('xml')->isValid()) {
         return response()->json(['error' => 'File invalid.'], $status = 500);
     }
     $user = Auth::user();
     $file = $request->file('xml');
     $pos = $user->getNewPodcastPosition();
     $new = [];
     try {
         $feeds = $parser->parseOpml($file);
     } catch (\Exception $e) {
         return response()->json(['error' => 'File could not be parsed.'], $status = 500);
     }
     foreach ($feeds as $feed) {
         $podcast = Podcast::getOrCreateFromRss($feed);
         $created = $user->addPodcast($podcast, $pos);
         if ($created) {
             $pos++;
             $new[] = $podcast;
         }
     }
     return response()->json(['success' => true, 'new' => $new, 'feeds' => $feeds]);
 }