/** * @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; }