|
- <?php
-
- namespace Lc\SovBundle\Repository\User;
-
- use App\Entity\Newsletter\Newsletter;
- use Lc\SovBundle\Repository\AbstractStore;
- use Lc\SovBundle\Repository\RepositoryQueryInterface;
-
- class UserStore extends AbstractStore implements UserStoreInterface
- {
- protected UserRepositoryQueryInterface $query;
-
- public function __construct(UserRepositoryQueryInterface $query)
- {
- $this->query = $query;
- }
-
- public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
- {
- $query->orderBy('id');
- return $query;
- }
-
- public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
- {
- return $query;
- }
-
- public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
- {
- return $query;
- }
-
- // findAllByNewsletter
- public function getByNewsletter(Newsletter $newsletter, $query = null): array
- {
- $query = $this->createQuery($query);
- $query->filterByNewsletter($newsletter);
- return $query->find();
- }
-
- // findByRole
- public function getByRole(string $role, $query = null): array
- {
- $query = $this->createQuery($query);
- $query->filterByRole($role);
- return $query->find();
- }
-
- // findByTicketTypesNotification
- public function getByTicketTypesNotification(string $ticketType, $query = null): array
- {
- $query = $this->createQuery($query);
- $query->filterByTicketTypeNotification($ticketType);
- return $query->find();
- }
-
- public function getOneByEmail(string $email, $query = null)
- {
- $query = $this->createQuery($query);
- $query->filterByEmail($email);
- return $query->findOne();
- }
-
- public function getByTerm(string $term, $query = null)
- {
- $query = $this->createQuery($query);
- $query->filterByTerm($term);
- return $query->find();
- }
- }
|