*/ if (!$CONFIG->CLIAPI1Enabled) { die("CLIAPI1 Not Enabled!\n"); } ######### Get JSON $f = fopen('php://stdin', 'r'); $stdin = ''; while ($line = fgets($f)) { $stdin .= $line; } fclose($f); ######### Create $createEvent = new CreateEvent(); $json = json_decode(trim($stdin)); if ($json) { $createEvent->setFromJSON($json); } else { print "ERRORS!\n\n"; print "Could not parse JSON\n"; die; } ######### Go if ($createEvent->canGo()) { $createEvent->go(); print "Done \n\n"; } else { print "ERRORS!\n\n"; foreach ($createEvent->getErrorMessages() as $msg) { print "ERROR: " . $msg . "\n\n"; } }
function testSetCountryAndTimeZone() { \TimeSource::mock(2014, 06, 01, 00, 00, 00); $this->addCountriesToTestDB(); $countryRepo = new CountryRepository(); $country = $countryRepo->loadByTwoCharCode("DE"); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $json = json_decode('{ "event":{ "summary":"Test", "description":"test test test", "url":"http://example.com", "start":{ "str":"2014-07-01 10:00:00" }, "end":{ "str":"2014-07-01 17:00:00" }, "country":{ "code":"DE" }, "timezone":"Europe/Berlin" }, "site":{ "slug":"test" }, "group":{ "slug":"' . $group->getSlug() . '" }, "user":{ "username":"******" } }'); $createEvent = new CreateEvent(); $createEvent->setFromJSON($json); $this->assertEquals(true, $createEvent->canGo()); $createEvent->go(); $eventRepoBuilder = new EventRepositoryBuilder(); $events = $eventRepoBuilder->fetchAll(); $this->assertEquals(1, count($events)); $event = $events[0]; $this->assertEquals('Test', $event->getSummary()); $this->assertEquals('test test test', $event->getDescription()); $this->assertEquals('http://example.com', $event->getUrl()); // Times above are Berlin, These are UTC $this->assertEquals('2014-07-01T09:00:00+00:00', $event->getStartAtInUTC()->format('c')); $this->assertEquals('2014-07-01T16:00:00+00:00', $event->getEndAtInUTC()->format('c')); $this->assertEquals($group->getId(), $event->getGroupId()); $this->assertEquals('Europe/Berlin', $event->getTimeZone()); $this->assertEquals($country->getId(), $event->getCountryId()); }