public function handleAddDefaultEventTypes($grid, $request, $data = null)
 {
     $summit_id = intval($request->param('ID'));
     if ($summit_id > 0 && ($summit = Summit::get()->byID($summit_id))) {
         Summit::seedBasicEventTypes($summit_id);
     }
 }
예제 #2
0
 private function assignEventType()
 {
     $summit_id = intval($this->SummitID);
     if ($summit_id > 0 && intval($this->TypeID) === 0) {
         Summit::seedBasicEventTypes($summit_id);
         $event_type = SummitEventType::get()->filter(array('Type' => 'Presentation', 'SummitID' => $summit_id))->first();
         $this->TypeID = $event_type->ID;
     }
 }
 /**
  * Implement this method in the task subclass to
  * execute via the TaskRunner
  */
 public function run($request)
 {
     set_time_limit(0);
     $summit_id = intval($request->getVar('summit_id'));
     if (empty($summit_id)) {
         throw new InvalidArgumentException('missing summit_id param!');
     }
     $summit_external_id = intval($request->getVar('summit_external_id'));
     if (empty($summit_external_id)) {
         throw new InvalidArgumentException('missing summit_external_id param!');
     }
     // get ticket types ...
     $summit = Summit::get()->byID($summit_id);
     if (is_null($summit)) {
         throw new InvalidArgumentException("non existent summit!");
     }
     $summit->ExternalEventId = $summit_external_id;
     $summit->write();
     Summit::seedBasicEventTypes($summit_id);
     Summit::seedSummitTypes($summit_id);
     $client = new GuzzleHttp\Client();
     $query = array('token' => EVENTBRITE_PERSONAL_OAUTH2_TOKEN);
     $response = $client->get(sprintf("https://www.eventbriteapi.com/v3/events/%s/ticket_classes/", $summit_external_id), array('query' => $query));
     if ($response->getStatusCode() !== 200) {
         throw new Exception('invalid status code!');
     }
     $content_type = $response->getHeader('content-type');
     if (empty($content_type)) {
         throw new Exception('invalid content type!');
     }
     if ($content_type !== 'application/json') {
         throw new Exception('invalid content type!');
     }
     $json = $response->getBody()->getContents();
     $ticket_types = json_decode($json, true);
     $ticket_types = $ticket_types['ticket_classes'];
     foreach ($ticket_types as $t) {
         $new_ticket = new SummitTicketType();
         $new_ticket->ExternalId = $t["id"];
         if (SummitTicketType::get()->filter(array('SummitID' => $summit_id, 'ExternalId' => $new_ticket->ExternalId))->count() > 0) {
             continue;
         }
         $new_ticket->Name = $t["name"];
         $new_ticket->Description = $t["description"];
         $new_ticket->SummitID = $summit_id;
         $new_ticket->write();
     }
 }
 public function run($request)
 {
     $summit_id = intval($request->requestVar('SummitID'));
     if ($summit_id <= 0) {
         throw new RuntimeException("invalid summit id");
     }
     $summit = Summit::get()->byID($summit_id);
     if (is_null($summit)) {
         throw new RuntimeException("invalid summit");
     }
     $count = 0;
     $presentations = Presentation::get()->filter(array('SummitID' => $summit_id, 'TypeID' => 0))->where(" Title IS NOT NULL AND Title <>'' ");
     Summit::seedBasicEventTypes($summit_id);
     $type = SummitEventType::get()->filter(array('Type' => 'Presentation', 'SummitID' => $summit_id))->first();
     if (is_null($type)) {
         throw new RuntimeException("invalid event type");
     }
     foreach ($presentations as $p) {
         $p->TypeID = $type->ID;
         $p->write();
         ++$count;
     }
     echo "Fixed {$count} presentations.";
 }