Ejemplo n.º 1
0
 public function deleteTrack($request, $db)
 {
     // Check for login
     if (!isset($request->user_id)) {
         throw new Exception("You must be logged in to delete this track", 401);
     }
     $track_id = $this->getItemId($request);
     $track_mapper = new TrackMapper($db, $request);
     $tracks = $track_mapper->getTrackById($track_id, true);
     if (!$tracks) {
         throw new Exception("Track not found", 404);
     }
     $event_mapper = new EventMapper($db, $request);
     $events = $event_mapper->getEventByTrackId($track_id, true, false, false);
     if (!$events || !$events[0]['ID']) {
         throw new Exception("Associated event not found", 404);
     }
     $event_id = $events[0]['ID'];
     if (!$event_mapper->thisUserHasAdminOn($event_id)) {
         throw new Exception('You do not have permission to delete this track', 403);
     }
     $track_mapper->deleteEventTrack($track_id);
     header("Content-Length: 0", null, 204);
     exit;
 }
Ejemplo n.º 2
0
 public function getAction($request, $db)
 {
     $track_id = $this->getItemId($request);
     // verbosity
     $verbose = $this->getVerbosity($request);
     if ($track_id) {
         $mapper = new TrackMapper($db, $request);
         $list = $mapper->getTrackById($track_id, $verbose);
         if (false === $list) {
             throw new Exception('Track not found', 404);
         }
     } else {
         // listing makes no sense
         throw new Exception('Generic tracks listing not supported', 405);
     }
     return $list;
 }