Skip to content

Commit

Permalink
Better link generation
Browse files Browse the repository at this point in the history
  • Loading branch information
weierophinney committed Feb 10, 2013
1 parent 8303ccf commit d8d0511
Showing 1 changed file with 33 additions and 38 deletions.
71 changes: 33 additions & 38 deletions Module.php
Expand Up @@ -68,53 +68,48 @@ public function onRoute($e)
$renderer = $services->get('PhlyRestfully\JsonRenderer');
$renderer->addHydrator('Phpbnl13StatusApi\Status', new ClassMethodsHydrator());

if (!$user) {
return;
}

// Set a listener on the createLinks helper to ensure individual status links
// use the User route, and pass in the user to the route.
$sharedEvents->attach($controllers, 'dispatch', function ($e) use ($user) {
$controller = $e->getTarget();
$links = $controller->halLinks();
$events = $links->getEventManager();

$events->attach('createLink', function ($e) use ($user) {
$route = $e->getParam('route');
$params = $e->getParam('params');

if ($route == 'phpbnl13_status_api/user') {
if ($user) {
$params['user'] = $user;
}
return;
$helpers = $services->get('ViewHelperManager');
$links = $helpers->get('HalLinks');
$links->getEventManager()->attach('createLink', function ($e) use ($user) {
$route = $e->getParam('route');
$params = $e->getParam('params');

if ($route == 'phpbnl13_status_api/user') {
if ($user) {
$params['user'] = $user;
}
return;
}

if ($route != 'phpbnl13_status_api/public') {
return;
}

$item = $e->getParam('item', false);
if ($route != 'phpbnl13_status_api/public') {
return;
}

if ($item instanceof Status) {
$e->setParam('route', 'phpbnl13_status_api/user');
$params['user'] = $item->getUser();
return;
}

if (!is_array($item)) {
return;
}

if (!isset($item['user'])) {
return;
}
$item = $e->getParam('item', false);

if ($item instanceof Status) {
$e->setParam('route', 'phpbnl13_status_api/user');
$params['user'] = $item['user'];
});
}, 100);
$params['user'] = $item->getUser();
return;
}

if (!is_array($item)) {
return;
}

if (!$user) {
return;
}
if (!isset($item['user'])) {
return;
}

$e->setParam('route', 'phpbnl13_status_api/user');
$params['user'] = $item['user'];
});

// Set the user in the persistence listener
$persistence = $services->get('Phpbnl13StatusApi\PersistenceListener');
Expand Down

0 comments on commit d8d0511

Please sign in to comment.