/**
  * @param UserInterface $user
  * @return ApiTokenInterface
  */
 public function createApiToken(UserInterface $user)
 {
     $token = new ApiToken();
     $token->setUser($user);
     $token->setApiKey(RandomStringGenerator::generate());
     $token->setExpiresAt(new \DateTime('+ 1 month'));
     $this->_em->persist($token);
     $this->_em->flush($token);
     return $token;
 }
 /**
  * @Route("/tokens/new", name="user_tokens_new")
  * @Route("/tokens/new", name="user_tokens_new_process")
  */
 public function newAction(Request $request)
 {
     $token = new ApiToken($this->getUser());
     $errors = array();
     if ($request->isMethod('POST')) {
         $token->setNotes($request->request->get('notes'));
         $errors = $this->validate($token);
         if (empty($errors)) {
             $this->getApiTokenRepository()->save($token);
             $this->addFlash('Yeehaw! You just created an API token');
             $url = $this->generateUrl('user_tokens');
             return $this->redirect($url);
         }
     }
     return $this->render('tokens/new.twig', array('errors' => $errors, 'token' => $token));
 }