public function manageAddAction()
 {
     $eid = $this->getRequest()->query->get('eid');
     $url = "https://www.eventbriteapi.com/v3/events/" . $eid . "/?token=CT3M6TIFGKYO5CM7QWOK";
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL, $url);
     $result = curl_exec($ch);
     curl_close($ch);
     $result = json_decode($result);
     if (isset($result->error)) {
         $msg = "Er is iets mis gegaan. Wellicht klopt de Eventbrite id niet?";
     } else {
         if ($result->organizer_id == $this->getUser()->getOrganiser()) {
             $em = $this->getDoctrine()->getManager();
             $dojo = new DojoEvent();
             $dojo->setName($result->name->text)->setDate(new \DateTime($result->start->local))->setUrl($result->url)->setDojo($this->getUser());
             $this->getUser()->addDojo($dojo);
             $em->persist($dojo);
             $em->flush();
             $msg = "ok";
         } else {
             $msg = "Deze dojo hoort niet bij jouw organizer id";
         }
     }
     return new Response($msg);
 }
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $dojo = new DojoEvent();
     $dojo->setName('CoderDojo #12')->setDojoDate(new \DateTime('12-12-2025 12:00:00'))->setUrl('http://www.eventbrite.nl/e/registratie-19-vrije-editie-zondag-18482884806')->setDojo($this->getReference('user'));
     $this->getReference('user')->addDojo($dojo);
     $manager->persist($dojo);
     $manager->flush();
 }
 /**
  * @Route("/mijn-dojo/beheren/toevoegen", name="new-dojo")
  * @param Request $request
  * @return Response
  */
 public function manageAddAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $eid = $request->query->get('eid');
     if (0 === preg_match('/^[0-9]{9,15}$/', $eid)) {
         return new Response('Dit is geen geldig ID. Een id bestaat uit 10 cijfers, bijv. 11528212193.');
     }
     $url = "https://www.eventbriteapi.com/v3/events/" . $eid . "/?token=" . $this->container->getParameter('eventbrite_api_token');
     $dojoEvent = $em->getRepository('CoderDojoWebsiteBundle:DojoEvent')->findOneBy(['eventbriteId' => $eid]);
     if (null !== $dojoEvent) {
         return new Response('Dit event is al toegevoegd!');
     }
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL, $url);
     $result = curl_exec($ch);
     curl_close($ch);
     $result = json_decode($result);
     if (isset($result->error)) {
         $this->get('logger')->addError('Error with EventBrite API for ' . $this->getUser()->getCity() . ' : ' . $result->error);
         $msg = "Er is iets mis gegaan. Wellicht klopt de Eventbrite id niet?";
     } else {
         if ($result->organizer_id == $this->getUser()->getOrganiser()) {
             $dojo = new DojoEvent();
             $dojo->setName($result->name->text)->setDate(new \DateTime($result->start->local))->setUrl($result->url)->setUser($this->getUser())->setEventbriteId($eid);
             $this->getUser()->addDojo($dojo);
             $em->persist($dojo);
             $em->flush();
             $msg = sprintf("%s heeft een nieuwe dojo toegevoegd voor %s\n<%s|Registreer op Eventbrite>", $this->getUser()->getName(), $dojo->getDate()->format('d F Y'), $dojo->getUrl());
             try {
                 $this->get('coder_dojo.website_bundle.slack_service')->sendToChannel('#general', $msg);
             } catch (\Exception $exception) {
                 // Fail silently so dojo's can still be added
                 $this->get('logger')->addError('Error with Slack for dojo ' . $this->getUser()->getCity() . ': ' . $exception->getMessage());
             }
             $msg = "ok";
         } else {
             $msg = "Deze dojo hoort niet bij jouw organizer id";
         }
     }
     return new Response($msg);
 }
 /**
  * @test
  */
 public function it_should_return_constructor_data()
 {
     $this->assertSame('url', $this->dojoEvent->getUrl());
     $this->assertSame('dojo', $this->dojoEvent->getName());
     $this->assertSame($this->dojo, $this->dojoEvent->getDojo());
     $this->assertNull($this->dojoEvent->getId());
     $this->assertSame(\DateTime::class, get_class($this->dojoEvent->getDate()));
 }
 /**
  * @param CreateEventCommand $command
  */
 public function handle(CreateEventCommand $command)
 {
     $dojo = $this->doctrine->getRepository('CoderDojoWebsiteBundle:Dojo')->find($command->getDojoId());
     $event = new DojoEvent();
     $event->setName($command->getName());
     $event->setDate($command->getDate());
     $event->setType($command->getType());
     $event->setZenId($command->getZenId());
     $event->setUrl($command->getUrl());
     $event->setDojo($dojo);
     $dojo->addEvent($event);
     $this->doctrine->persist($event);
     $this->doctrine->flush();
     $event = new EventCreatedEvent($command->getDojoId(), $command->getName(), $command->getDate(), $command->getUrl(), $command->getZenId(), $command->getType());
     $this->eventRecorder->record($event);
 }
 /**
  * @Route("/events/{id}/add", name="dashboard-dojo-events-add")
  */
 public function addEventAction(Request $request, $id)
 {
     /** @var User $user */
     $user = $this->getUser();
     $dojo = $this->getDoctrine()->getRepository('CoderDojoWebsiteBundle:Dojo')->find($id);
     if (false === $dojo->isOwner($user)) {
         $this->get('session')->getFlashBag()->add('error', 'Zo te zien heb je geen rechten om aan deze dojo een event toe te voegen.');
         return $this->redirectToRoute('dashboard');
     }
     $form = $this->createForm(EventFormType::class);
     if ($request->isMethod('POST')) {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $event = new DojoEvent();
             $event->setName($form->get('name')->getData());
             $event->setDate($form->get('date')->getData());
             $event->setUrl($form->get('url')->getData());
             $event->setType(DojoEvent::TYPE_CUSTOM);
             $event->setDojo($dojo);
             $dojo->addEvent($event);
             $this->getDoctrine()->getManager()->persist($event);
             $this->getDoctrine()->getManager()->flush();
             $this->get('session')->getFlashBag()->add('success', 'Dit event is toegevoegd!');
             return $this->redirectToRoute('dashboard-dojo-events', ['id' => $dojo->getId()]);
         } else {
             return $this->render('CoderDojoWebsiteBundle:Dashboard:Pages/events-add.html.twig', ['form' => $form->createView(), 'dojo' => $dojo]);
         }
     }
     return $this->render('CoderDojoWebsiteBundle:Dashboard:Pages/events-add.html.twig', ['form' => $form->createView(), 'dojo' => $dojo]);
 }