*/
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());
    }