/**
  * @inheritdoc
  */
 public function findByFacebook(FacebookUser $facebookUser, User $user = null)
 {
     $facebookUserTemp = $this->facebookRepository->findByIdFacebook($facebookUser->getIdFacebook());
     $facebookFriends = $this->facebookRepository->findByArrayIdFacebook($facebookUser->getFacebookFriendIds());
     $facebookUser->setFacebookFriends($facebookFriends);
     if (empty($facebookUserTemp)) {
         $facebookUserTemp = $this->persist($facebookUser);
     } else {
         $facebookUserTemp->updateFromAnother($facebookUser);
         $this->entityManager->flush();
     }
     if (empty($user)) {
         $user = $this->repository->findUserByIdFacebookUser($facebookUserTemp->getId());
         if (empty($user)) {
             $user = $this->repository->createFromFacebookUser($facebookUserTemp);
             $this->persist($user);
         }
     } else {
         /** @var User $user */
         $this->entityManager->createCypherQuery()->query(sprintf('MATCH (u:User), (f:FacebookUser)
                     WHERE ID(u) = %s AND ID(f) = %s
                     CREATE (u)-[:HAS_SOCIAL]->(f)', $user->getId(), $facebookUserTemp->getId()))->getResult();
     }
     return $user;
 }
 /**
  * @param array $arrId
  * @return array
  * @throws Exception
  */
 public function findByArrayIdFacebook($arrId)
 {
     $result = array();
     if (!empty($arrId)) {
         foreach ($arrId as $id) {
             $facebookUser = $this->findByIdFacebook($id);
             if (empty($facebookUser)) {
                 $facebookUser = new FacebookUser();
                 $facebookUser->setIdFacebook($id);
                 $this->persist($facebookUser);
             }
             $result[] = $facebookUser;
         }
     }
     return $result;
 }
 /**
  * Facebook authentication
  *
  * @ApiDoc(
  *      resource = "/public/api/authentications/",
  *     description = "Facebook authentication",
  *     statusCodes = {
  *         200 = "Returned when successful",
  *         400 = "Returned when have any error"
  *     },
  *      output={
  *          "class" = "array<Hackathon\WorkBundle\Entity\User>",
  *          "groups" = {"user_detail"}
  *      },
  *      views = {"default"}
  * )
  *
  * @Get("/authentications/facebook/{token}")
  *
  * @View(serializerGroups="user_detail")
  *
  * @param string $token
  * @return User
  */
 public function getAuthenticationFacebookAction($token)
 {
     //Get user
     $facebookUser = FacebookUser::getUserByToken($token);
     $userManager = $this->getUserManager();
     $user = $userManager->findByFacebook($facebookUser);
     return $this->checkEmptyObject($user, 'hackathon.message._user_not_found');
 }
 /**
  * @param FacebookUser $facebookUser
  * @return $this
  */
 public function updateFromAnother(FacebookUser $facebookUser)
 {
     $this->setEmail($facebookUser->getEmail());
     $this->setName($facebookUser->getName());
     $this->setBirthday($facebookUser->getBirthday());
     $this->setFacebookFriends($facebookUser->getFacebookFriends());
     return $this;
 }
Exemple #5
0
 /**
  * @param FacebookUser $facebookUser
  * @param bool $withData
  */
 public function setFacebookUser(FacebookUser $facebookUser, $withData = false)
 {
     $this->facebookUser = $facebookUser;
     if ($withData) {
         $this->setName($facebookUser->getName());
         $this->setEmail($facebookUser->getEmail());
         $this->setBirthday($facebookUser->getBirthday());
     }
 }