/** * @Rest\Post("/signup" ) * @ApiDoc( * resource=true, * description="Signup", * ) */ public function postSignUpAction(Request $request) { $objSignUpvalidator = new SignUpValidator($this->createFormBuilder(), $request); $objSignUpvalidator->validate(); if ($objSignUpvalidator->hasError()) { return ['errors' => $objSignUpvalidator->getErrors()]; } $objUser = new User(); $objCustomer = new Customer(); $objCustomer->setEmailAddress($objSignUpvalidator->getData('email')); $strName = trim($objSignUpvalidator->getData('name')); list($strFirstName, $strLastName) = explode(' ', $strName); $objCustomer->setFirstName($strFirstName); $objCustomer->setLastName($strLastName); $objUser->setEmail($objSignUpvalidator->getData('email')); $objUser->setPassword($objSignUpvalidator->getData('password')); $objUser->setCustomer($objCustomer); $this->objEntityManager->persist($objCustomer); $this->objEntityManager->persist($objUser); $this->objEntityManager->flush(); $objSecurityToken = $this->get('security.authentication.token'); $this->objSession->set('user/id', $objUser->getId()); $this->objSession->set('user/customer_id', $objCustomer->getId()); $this->objSession->set('security/token', $objSecurityToken->getSessionToken()); $objSecurityToken->generateAuthToken(array($objUser->getId(), $objSecurityToken->getSessionToken(), $request->getClientIp(), $request->headers->get('User-Agent'))); return array('token' => $objSecurityToken->getAuthToken()); }
/** * Add User * @Rest\Post("/add" ) * @ApiDoc( * resource=true, * description="User Add", * ) */ public function postAddUserAction(Request $request) { $objEntityManager = $this->getDoctrine()->getManager(); $objCustomer = new Customer(); $objCustomer->setEmailAddress($request->get('email')); $objCustomer->setBillingAddressId(1); $objCustomer->setFirstName($request->get('name')); $objCustomer->setLastName($request->get('name')); $objUser = new User(); $objUser->setEmail($request->get('email')); $objUser->setPassword($request->get('password')); $objUser->setName($request->get('name')); $objUser->setCustomer($objCustomer); $objEntityManager->persist($objCustomer); $objEntityManager->persist($objUser); $objEntityManager->flush(); return array('user' => array('id' => $objUser->getId())); }
/** * login * @Rest\Post("/login" ) * @ApiDoc( * resource=true, * description="Facebook Login User", * ) */ public function postLoginAction(Request $request) { // $objFacebookValidator = new FacebookValidator( $this->createFormBuilder( [] ), $request ); // $objFacebookValidator->validate( ['code', 'clientId', 'redirectUri'] ); // if( $objFacebookValidator->hasError() ) { // return [ 'error' => $objFacebookValidator->getErrors() ]; // } // $accessTokenUrl = 'https://graph.facebook.com/v2.3/oauth/access_token'; // $accessTokenUrl .= '?code=' . $objFacebookValidator->getData( 'code' ); // $accessTokenUrl .= '&client_id=' . $objFacebookValidator->getData( 'clientId' ); // $accessTokenUrl .= '&redirect_uri=' . $objFacebookValidator->getData( 'redirectUri' ); // $accessTokenUrl .= '&client_secret=' . $this->container->getParameter('facebook_app_secret'); $arrData = json_decode($request->getContent(), true); $accessTokenUrl = 'https://graph.facebook.com/v2.3/oauth/access_token'; $accessTokenUrl .= '?code=' . $arrData['code']; $accessTokenUrl .= '&client_id=' . $arrData['clientId']; $accessTokenUrl .= '&redirect_uri=' . $arrData['redirectUri']; $accessTokenUrl .= '&client_secret=' . $this->container->getParameter('facebook_app_secret'); $strJsonResponse = $this->makeGetRequestToEndPoint($accessTokenUrl); // $objFacebookAccessTokenValidator = new FacebookValidator( $this->createFormBuilder() ); // $objFacebookAccessTokenValidator->setDataByJson( $strJsonResponse ); // $objFacebookAccessTokenValidator->validate( ['access_token', 'token_type', 'expires_in'] ); // if( $objFacebookAccessTokenValidator->hasError() ) { // return [ 'error' => $objFacebookAccessTokenValidator->getErrors() ]; // } $arrDataToken = json_decode($strJsonResponse, true); $graphApiUrl = 'https://graph.facebook.com/v2.3/me'; $graphApiUrl .= '?access_token=' . $arrDataToken['access_token']; $strJsonResponse = $this->makeGetRequestToEndPoint($graphApiUrl); // $objFacebookUserValidator = new FacebookValidator( $this->createFormBuilder() ); // $objFacebookUserValidator->setDataByJson( $strJsonResponse ); // $objFacebookUserValidator->validate( ['id', 'email', 'first_name', 'last_name', 'link', 'name', 'gender' ] ); // if( $objFacebookUserValidator->hasError() ) { // return [ 'error' => $objFacebookUserValidator->getErrors() ]; // } $arrUserData = json_decode($strJsonResponse, true); $objUser = $this->objEntityManager->getRepository('BundlesUserBundle:Users')->fetchByEmail($arrUserData['email']); if (true == is_null($objUser)) { $objCustomer = new Customer(); $objCustomer->setFirstName($arrUserData['first_name']); $objCustomer->setLastName($arrUserData['last_name']); $objCustomer->setEmailAddress($arrUserData['email']); $objUser = new Users(); $objUser->setName($arrUserData['name']); $objUser->setEmail($arrUserData['email']); $objUser->setFacebookId($arrUserData['id']); $objUser->setFacebookAccessToken($arrUserData['access_token']); $objUser->setCustomer($objCustomer); $this->objEntityManager->persist($objUser); $this->objEntityManager->persist($objCustomer); $this->objEntityManager->flush(); } $objSecurityToken = $this->get('security.authentication.token'); $this->objSession->set('user/id', $objUser->getId()); $this->objSession->set('security/token', $objSecurityToken->getSessionToken()); if (false == is_null($objUser->getCustomer())) { $this->objSession->set('user/customer_id', $objUser->getCustomer()->getId()); } $objSecurityToken->generateAuthToken(array($objUser->getId(), $objSecurityToken->getSessionToken(), $request->headers->get('User-Agent'))); return array('token' => $objSecurityToken->getAuthToken()); }