<?php

require __DIR__ . '/../vendor/autoload.php';
use Blog\ActivityStreams\Renderer\JsonRenderer;
use Blog\Model\ActionQuery;
Propel::init(__DIR__ . '/../config/conf/Blog-conf.php');
// render activities
$renderer = new JsonRenderer();
$actions = ActionQuery::create()->find();
foreach ($actions as $action) {
    echo $renderer->render($action) . PHP_EOL;
}
$app['activity_streams.data_resolver_chain'] = $app->share(function () use($app) {
    return new DataResolverProvider();
});
$app['activity_streams.data_resolver_chain']->addDataResolver(new CategoryResolver());
$app['activity_streams.data_resolver_chain']->addDataResolver(new PostResolver());
$app['activity_streams.data_resolver_chain']->addDataResolver(new UserResolver());
$app['activity_streams.action_manager'] = $app->share(function () use($app) {
    return new ActionManager($app['activity_streams.data_resolver_chain']);
});
$app->get('/', function () use($app) {
    $actions = $app['activity_streams.action_manager']->findAll();
    return $app['twig']->render('index.twig', array('actions' => $actions));
});
$app->get('/activities.json', function () use($app) {
    $actions = $app['activity_streams.action_manager']->findAll();
    $renderer = new JsonRenderer();
    $res = array();
    foreach ($actions as $action) {
        $res['items'][] = json_decode($renderer->render($action));
    }
    return json_encode($res);
});
$app->get('/user/{id}', function ($id) use($app) {
    $user = UserQuery::create()->findPk($id);
    return $app['twig']->render('user_show.twig', array('user' => $user));
});
$app->get('/category/{id}', function ($id) use($app) {
    $category = CategoryQuery::create()->findPk($id);
    return $app['twig']->render('category_show.twig', array('category' => $category));
});
$app->get('/post/{id}', function ($id) use($app) {