EventUser.php 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Muzich\CoreBundle\Propagator;
  3. use Muzich\CoreBundle\Propagator\EventPropagator;
  4. use Muzich\CoreBundle\Entity\User;
  5. use Muzich\CoreBundle\Actions\User\Event as UserEventAction;
  6. use Muzich\CoreBundle\Actions\User\Reputation as UserReputation;
  7. use Muzich\CoreBundle\Entity\Event;
  8. /**
  9. * Propagateur d'événement concernant les users
  10. *
  11. * @author bux
  12. */
  13. class EventUser extends EventPropagator
  14. {
  15. /**
  16. * L'utilisateur est suivis par un autre utilisateur
  17. *
  18. * @param User $user Utilisateur suivis
  19. */
  20. public function addToFollow(User $user, User $follower)
  21. {
  22. // Points de réputation
  23. $ur = new UserReputation($user);
  24. $ur->addPoints(
  25. $this->container->getParameter('reputation_element_follow_value')
  26. );
  27. // Event de suivis
  28. $uea = new UserEventAction($user, $this->container);
  29. $event = $uea->proceed(Event::TYPE_USER_FOLLOW, $follower->getId());
  30. $this->container->get('doctrine')->getEntityManager()->persist($event);
  31. }
  32. /**
  33. * L'utilisateur n'est plus suivit par un autre utilisateur
  34. *
  35. * @param User $user Utilisateur plus suivis
  36. */
  37. public function removeFromFollow(User $user)
  38. {
  39. $ur = new UserReputation($user);
  40. $ur->removePoints(
  41. $this->container->getParameter('reputation_element_follow_value')
  42. );
  43. }
  44. }