/**
  * @Post("/register")
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function registerAction(Request $request)
 {
     $email = $request->request->get('email');
     $password = $request->request->get('password');
     $creditCard = ['name' => $request->request->get('cc-name'), 'number' => $request->request->get('cc-number'), 'cvc' => $request->request->get('cc-cvc'), 'month' => $request->request->get('cc-month'), 'year' => $request->request->get('cc-year')];
     if (!$email || !$password) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('Email and password required');
     }
     if (!$this->get('credit_card_validator')->validate($creditCard)) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('Invalid Credit Card given');
     }
     $dm = $this->get('doctrine.odm.mongodb.document_manager');
     $user = $dm->getRepository('AppBundle:User')->findOneBy(['email' => $email]);
     if ($user) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('User already exists');
     }
     $user = new User();
     $user->setEmail($email);
     $user->setPassword($password);
     $user->setCreditCard($creditCard);
     $dm->persist($user);
     $dm->flush();
     return true;
 }
Example #2
0
 /**
  * Creates a new user document and persist it
  * @param ObjectManager $manager object manager
  * @param string|null   $email   email to create user with
  * @return User
  */
 private function _createUser(ObjectManager $manager, $email = null)
 {
     $user = new User();
     $email = $email ?: sprintf('*****@*****.**', uniqid());
     $user->setEmail($email);
     $user->setPassword(self::TEST_PASS);
     $encoder = $this->_container->get('security.password_encoder');
     $encryptedPassword = $encoder->encodePassword($user, self::TEST_PASS);
     $user->setPassword($encryptedPassword);
     $manager->persist($user);
     return $user;
 }