public function registerAction(Request $request)
{
$email = $request->get('email');
$userService = $this->container->get('user');
$emailService = $this->container->get('email');
$zendRouter = $this->container->get('zend_router');
$publicationMetadata = $request->attributes->get('_newscoop_publication_metadata');
$response = new Response();
$users = $userService->findBy(array('email' => $email));
if (count($users) > 0) {
$user = array_pop($users);
} else {
$user = $userService->createPending($email);
}
if (!$user->isPending()) {
$response->setStatusCode(409);
} else {
$emailService->sendConfirmationToken($user);
$response->setStatusCode(200);
$response->headers->set('X-Location', $request->getScheme() . '://' . $publicationMetadata['alias']['name'] . $zendRouter->assemble(array('controller' => 'register', 'action' => 'after')));
}
return $response;
}