Exemple #1
0
 public static function create()
 {
     $app = \Slim\Slim::getInstance();
     $jsonData = $app->request->getBody();
     //$allPostVars = json_decode($jsonData,true);
     $allPostVars = $app->request->post();
     $eventName = @$allPostVars['relive-event-name'] ? @trim($allPostVars['relive-event-name']) : NULL;
     $hashtags = @$allPostVars['relive-hashtags'] ? $allPostVars['relive-hashtags'] : [];
     $eventName = htmlspecialchars($eventName, ENT_QUOTES, 'UTF-8');
     if (is_null($eventName) || empty($eventName) || strlen($eventName) > 255 || count($hashtags) == 0) {
         $app->render(400, ['Status' => 'Invalid input.']);
         return;
     }
     try {
         $event = \relive\models\Event::firstOrCreate(['eventName' => $eventName]);
         $event->dateAdded = time();
         $event->save();
         foreach ($hashtags as $tag) {
             $tag = trim(htmlspecialchars($tag, ENT_QUOTES, 'UTF-8'));
             if (!empty($tag) && strlen($tag) < 255) {
                 $hashtag = \relive\models\Hashtag::firstOrCreate(['hashtag' => $tag]);
                 $eventhashtagrelationship = \relive\models\EventHashtagRelationship::firstOrCreate(['event_id' => $event->event_id, 'hashtag_id' => $hashtag->hashtag_id]);
             }
         }
         echo json_encode($event, JSON_UNESCAPED_SLASHES);
         passthru("php ./relive/crawlers/CreationCrawler.php " . $event->event_id . "> /dev/null &");
     } catch (\Exception $e) {
         $app->render(500, ['Status' => 'An error occurred.']);
     }
 }