get('{repo}/network/{branch}/{page}.json', function($repo, $branch, $page) use ($app) { /** @var $repository Repository */ $repository = $app['git']->getRepository($app['git.repos'] . $repo); if ($branch === null) { $branch = $repository->getHead(); } $pager = $app['util.view']->getPager($page, $repository->getTotalCommits($branch)); $commits = $repository->getPaginatedCommits($branch, $pager['current']); // format the commits for the json reponse $jsonFormattedCommits = array(); foreach( $commits as $commit ) { /** @var $commit Commit */ $jsonFormattedCommits[$commit->getHash()] = array( 'hash' => $commit->getHash(), 'parentsHash' => $commit->getParentsHash(), 'date' => $commit->getDate()->format('U'), 'message' => htmlentities( $commit->getMessage() ), 'author' => array( 'name' => $commit->getAuthor()->getName(), 'email' => $commit->getAuthor()->getEmail() ) ); } return $app->json(array( 'repo' => $repo, 'branch' => $branch, 'nextPage' => $pager['last'] !== $pager['current'] ? $pager['next'] : null, 'start' => $commits[0]->getHash(), 'commits' => $jsonFormattedCommits ), 200); })->assert('repo', $app['util.routing']->getRepositoryRegex()) ->assert('branch', $app['util.routing']->getBranchRegex()) ->value('branch', null) ->assert('page', '\d+') ->value('page', '0') ->bind('networkData'); $route->get('{repo}/network/{branch}', function($repo, $branch) use ($app) { $repository = $app['git']->getRepository($app['git.repos'] . $repo); if ($branch === null) { $branch = $repository->getHead(); } return $app['twig']->render('network.twig', array( 'repo' => $repo, 'branch' => $branch, )); })->assert('repo', $app['util.routing']->getRepositoryRegex()) ->assert('branch', $app['util.routing']->getBranchRegex()) ->value('branch', null) ->bind('network'); return $route; } }