Skip to content

Commit

Permalink
Update repository files
Browse files Browse the repository at this point in the history
  • Loading branch information
webeeq committed Oct 28, 2020
1 parent 3e363a7 commit e852a4a
Show file tree
Hide file tree
Showing 14 changed files with 106 additions and 85 deletions.
15 changes: 11 additions & 4 deletions src/Controller/AddUserController.php
Expand Up @@ -38,14 +38,21 @@ public function addUserAction(Request $request): Response
$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
$pr = $this->em->getRepository(Province::class);
$cr = $this->em->getRepository(City::class);

$user = new User();
$user->setProvince(
$this->em->getRepository(Province::class)
->find($addUserForm->getProvince())
$pr->findOneBy([
'id' => $addUserForm->getProvince(),
'active' => 1
])
);
$user->setCity(
$this->em->getRepository(City::class)
->find($addUserForm->getCity())
$cr->findOneBy([
'id' => $addUserForm->getCity(),
'active' => 1
])
);
$user->setActive(true);
$user->setName($addUserForm->getName());
Expand Down
10 changes: 6 additions & 4 deletions src/Controller/Ajax/CityListController.php
Expand Up @@ -5,16 +5,19 @@
namespace App\Controller\Ajax;

use App\Entity\City;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\{JsonResponse, Request, Response};
use Twig\Environment;

class CityListController extends AbstractController
{
private EntityManagerInterface $em;
private Environment $twig;

public function __construct(Environment $twig)
public function __construct(EntityManagerInterface $em, Environment $twig)
{
$this->em = $em;
$this->twig = $twig;
}

Expand All @@ -25,9 +28,8 @@ public function cityListAction(Request $request): Response
$selectedProvince = (int) $request->get('selectedProvince');
$selectedCity = (int) $request->get('selectedCity');

$cityList = $this->getDoctrine()
->getRepository(City::class)
->getCityList($selectedProvince);
$cr = $this->em->getRepository(City::class);
$cityList = $cr->getCityList($selectedProvince);

$citySelect = $this->twig->render('ajax/_city_select.html.twig', [
'selectId' => $selectId,
Expand Down
7 changes: 4 additions & 3 deletions src/Controller/MainPageController.php
Expand Up @@ -40,9 +40,10 @@ public function mainPageLevelAction(
int $listLimit,
int $levelLimit
): Response {
$userList = $this->em->getRepository(User::class)
->getUserList($level, $listLimit);
$userCount = $this->em->getRepository(User::class)->getUserCount();
$ur = $this->em->getRepository(User::class);

$userList = $ur->getUserList($level, $listLimit);
$userCount = $ur->getUserCount();
$pageNavigator = $this->navigator->preparePageNavigator(
$this->generateUrl('main_page_level', ['level' => 0]) . ',',
$level,
Expand Down
37 changes: 21 additions & 16 deletions src/Controller/UserDataController.php
Expand Up @@ -40,38 +40,43 @@ public function userDataAction(
$cacheList = str_replace('{user}', $user, $cacheList);
$cacheFile = '../templates/' . $cacheList;

if (!$this->em->getRepository(User::class)->isUserData($user)) {
$ur = $this->em->getRepository(User::class);

if (!$ur->isUserData($user)) {
throw $this->createNotFoundException('No user data found');
}

if (
!file_exists($cacheFile)
|| filemtime($cacheFile) <= time() - $cacheTime
) {
$randomUserList = $this->em->getRepository(User::class)
->getRandomUserList($userLimit);
$randomUserList = $ur->getRandomUserList($userLimit);
$content = $this->twig->render(
'user_data/_user_data_list.html.twig',
['randomUserList' => $randomUserList]
);
$this->cache->cachePage($cacheFile, $content);
}

$this->em->getRepository(User::class)->updateUserNumber($user);
$this->em->getRepository(User::class)->updateUserRanking($user);
$userData = $this->em->getRepository(User::class)->getUserData($user);
$ur->updateUserNumber($user);
$ur->updateUserRanking($user);
$userData = $ur->getUserData($user);
$this->em->refresh($userData);

$title = ($userData->getName() && $userData->getSurname())
? $userData->getName() . ' ' . $userData->getSurname() . (
($userData->getProvince() || $userData->getCity()) ? ' -' . (
($userData->getCity()) ? ' '
. $userData->getCity()->getName() : ''
) . (
($userData->getProvince()) ? ' '
. $userData->getProvince()->getName() : ''
) : ''
) : '';
$title = (
!empty($userData->getName()) && !empty($userData->getSurname())
) ? $userData->getName() . ' ' . $userData->getSurname() . (
(
$userData->getProvince() !== null
|| $userData->getCity() !== null
) ? ' -' . (
($userData->getCity() !== null) ? ' '
. $userData->getCity()->getName() : ''
) . (
($userData->getProvince() !== null) ? ' '
. $userData->getProvince()->getName() : ''
) : ''
) : '';

return $this->render('user_data/user_data.html.twig', [
'activeMenu' => 'user_data',
Expand Down
32 changes: 16 additions & 16 deletions src/Controller/UserSearchController.php
Expand Up @@ -56,22 +56,22 @@ public function userSearchAction(
? $levelPosition : strlen($requestUri);
$formUri = substr($requestUri, 0, $formUriLength);

$searchUserList = $this->em->getRepository(User::class)
->getSearchUserList(
(string) $userSearchForm->getName(),
(string) $userSearchForm->getSurname(),
$userSearchForm->getProvince(),
$userSearchForm->getCity(),
$level,
$listLimit
);
$searchUserCount = $this->em->getRepository(User::class)
->getSearchUserCount(
(string) $userSearchForm->getName(),
(string) $userSearchForm->getSurname(),
$userSearchForm->getProvince(),
$userSearchForm->getCity()
);
$ur = $this->em->getRepository(User::class);

$searchUserList = $ur->getSearchUserList(
(string) $userSearchForm->getName(),
(string) $userSearchForm->getSurname(),
$userSearchForm->getProvince(),
$userSearchForm->getCity(),
$level,
$listLimit
);
$searchUserCount = $ur->getSearchUserCount(
(string) $userSearchForm->getName(),
(string) $userSearchForm->getSurname(),
$userSearchForm->getProvince(),
$userSearchForm->getCity()
);
$pageNavigator = $this->navigator->preparePageNavigator(
$formUri . '&level=',
$level,
Expand Down
16 changes: 8 additions & 8 deletions src/Form/Type/AddUserType.php
Expand Up @@ -5,6 +5,7 @@
namespace App\Form\Type;

use App\Entity\{City, Province};
use App\Form\AddUserForm;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\{
Expand Down Expand Up @@ -33,10 +34,11 @@ public function buildForm(
$provinceArray = [];
$cityArray = [];

$provinceList = $this->em->getRepository(Province::class)
->getProvinceList();
$cityList = $this->em->getRepository(City::class)
->getCityList($options['data']->getProvince());
$pr = $this->em->getRepository(Province::class);
$cr = $this->em->getRepository(City::class);

$provinceList = $pr->getProvinceList();
$cityList = $cr->getCityList($options['data']->getProvince());

$provinceArray[' '] = 0;
foreach ($provinceList as $province) {
Expand Down Expand Up @@ -71,10 +73,8 @@ public function buildForm(
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => 'App\Form\AddUserForm',
'csrf_protection' => true,
'csrf_field_name' => '_token',
'csrf_token_id' => 'add_user_form_item'
'data_class' => AddUserForm::class,
'csrf_protection' => true
]);
}
}
7 changes: 3 additions & 4 deletions src/Form/Type/ContactFormType.php
Expand Up @@ -4,6 +4,7 @@

namespace App\Form\Type;

use App\Form\ContactFormForm;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\{
EmailType,
Expand Down Expand Up @@ -36,10 +37,8 @@ public function buildForm(
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => 'App\Form\ContactFormForm',
'csrf_protection' => true,
'csrf_field_name' => '_token',
'csrf_token_id' => 'contact_form_form_item'
'data_class' => ContactFormForm::class,
'csrf_protection' => true
]);
}
}
16 changes: 8 additions & 8 deletions src/Form/Type/UserSearchType.php
Expand Up @@ -5,6 +5,7 @@
namespace App\Form\Type;

use App\Entity\{City, Province};
use App\Form\UserSearchForm;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\{
Expand Down Expand Up @@ -32,10 +33,11 @@ public function buildForm(
$provinceArray = [];
$cityArray = [];

$provinceList = $this->em->getRepository(Province::class)
->getProvinceList();
$cityList = $this->em->getRepository(City::class)
->getCityList($options['data']->getProvince());
$pr = $this->em->getRepository(Province::class);
$cr = $this->em->getRepository(City::class);

$provinceList = $pr->getProvinceList();
$cityList = $cr->getCityList($options['data']->getProvince());

$provinceArray[' '] = 0;
foreach ($provinceList as $province) {
Expand Down Expand Up @@ -71,10 +73,8 @@ public function buildForm(
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => 'App\Form\UserSearchForm',
'csrf_protection' => true,
'csrf_field_name' => '_token',
'csrf_token_id' => 'user_search_form_item'
'data_class' => UserSearchForm::class,
'csrf_protection' => true
]);
}
}
23 changes: 13 additions & 10 deletions src/Repository/UserRepository.php
Expand Up @@ -10,9 +10,12 @@

class UserRepository extends ServiceEntityRepository
{
private string $date;

public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, User::class);
$this->date = date('Y-m-d H:i:s');
}

public function getUserList(int $level, int $listLimit): array
Expand All @@ -24,7 +27,7 @@ public function getUserList(int $level, int $listLimit): array
WHERE u.active = 1 AND u.date <= :date
ORDER BY u.number DESC, u.date ASC'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setFirstResult(($level - 1) * $listLimit)
->setMaxResults($listLimit);

Expand All @@ -38,7 +41,7 @@ public function getUserCount(): int
LEFT JOIN App:Province p WITH u.province = p.id
LEFT JOIN App:City c WITH u.city = c.id
WHERE u.active = 1 AND u.date <= :date'
)->setParameter('date', date('Y-m-d H:i:s'));
)->setParameter('date', $this->date);

try {
$count = (int) $query->getSingleScalarResult();
Expand Down Expand Up @@ -73,7 +76,7 @@ public function getSearchUserList(
. $provinceId . $cityId . $userName . $userSurname . '
ORDER BY u.number DESC, u.date ASC'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('province', $province)
->setParameter('city', $city)
->setParameter('name', '%' . $name . '%')
Expand Down Expand Up @@ -105,7 +108,7 @@ public function getSearchUserCount(
WHERE u.active = 1 AND u.date <= :date'
. $provinceId . $cityId . $userName . $userSurname
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('province', $province)
->setParameter('city', $city)
->setParameter('name', '%' . $name . '%')
Expand All @@ -129,7 +132,7 @@ public function getRandomUserList(int $listLimit): array
WHERE u.active = 1 AND u.date <= :date
ORDER BY RAND()'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setFirstResult(0)
->setMaxResults($listLimit);

Expand All @@ -144,7 +147,7 @@ public function getUserData(int $user): ?User
LEFT JOIN App:City c WITH u.city = c.id
WHERE u.active = 1 AND u.date <= :date AND u.id = :user'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('user', $user);

return $query->getOneOrNullResult();
Expand All @@ -156,7 +159,7 @@ public function isUserData(int $user): bool
'SELECT u.id FROM App:User u
WHERE u.active = 1 AND u.date <= :date AND u.id = :user'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('user', $user);

return (bool) $query->getOneOrNullResult();
Expand All @@ -168,7 +171,7 @@ public function updateUserNumber(int $user): ?int
'UPDATE App:User u SET u.number = (u.number + 1)
WHERE u.active = 1 AND u.date <= :date AND u.id = :user'
)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('user', $user);

return $query->getOneOrNullResult();
Expand All @@ -179,7 +182,7 @@ public function updateUserRanking(int $user): ?int
$query = $this->getEntityManager()->createQuery(
'SELECT MAX(u.number) AS max FROM App:User u
WHERE u.active = 1 AND u.date <= :date'
)->setParameter('date', date('Y-m-d H:i:s'));
)->setParameter('date', $this->date);

try {
$max = (int) $query->getSingleScalarResult();
Expand All @@ -192,7 +195,7 @@ public function updateUserRanking(int $user): ?int
WHERE u.active = 1 AND u.date <= :date AND u.id = :user'
)
->setParameter('max', $max)
->setParameter('date', date('Y-m-d H:i:s'))
->setParameter('date', $this->date)
->setParameter('user', $user);

return $query->getOneOrNullResult();
Expand Down
6 changes: 3 additions & 3 deletions templates/bundles/TwigBundle/Exception/error.html.twig
@@ -1,8 +1,8 @@
{% extends 'error.html.twig' %}

{% block title %}ERROR 500{% endblock %}
{% block title %}{{ 'error.title'|trans({'%code%': status_code}) }}{% endblock %}

{% block body %}
<h1>ERROR 500</h1>
<p><a href="{{ path('main_page') }}">Back to the main page</a></p>
<h1>{{ 'error.title'|trans({'%code%': status_code}) }}</h1>
<p><a href="{{ path('main_page') }}">{{ 'error.link'|trans }}</a></p>
{% endblock %}
6 changes: 3 additions & 3 deletions templates/bundles/TwigBundle/Exception/error403.html.twig
@@ -1,8 +1,8 @@
{% extends 'error.html.twig' %}

{% block title %}ERROR 403{% endblock %}
{% block title %}{{ 'error.title'|trans({'%code%': 403}) }}{% endblock %}

{% block body %}
<h1>ERROR 403</h1>
<p><a href="{{ path('main_page') }}">Back to the main page</a></p>
<h1>{{ 'error.title'|trans({'%code%': 403}) }}</h1>
<p><a href="{{ path('main_page') }}">{{ 'error.link'|trans }}</a></p>
{% endblock %}

0 comments on commit e852a4a

Please sign in to comment.