Pőcze Bence
7beec510a1
All checks were successful
rvr-nextgen/pipeline/pr-master This commit looks good
71 lines
2.0 KiB
PHP
71 lines
2.0 KiB
PHP
<?php namespace RVR\Controller;
|
|
|
|
use DateTime;
|
|
use Container;
|
|
use RVR\PersistentData\Model\Event;
|
|
use RVR\PersistentData\Model\User;
|
|
use RVR\Repository\EventRepository;
|
|
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
|
|
use SokoWeb\Interfaces\Response\IRedirect;
|
|
use SokoWeb\Response\HtmlContent;
|
|
use SokoWeb\Response\Redirect;
|
|
|
|
class EventRedirectController implements IAuthenticationRequired
|
|
{
|
|
private EventRepository $eventRepository;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->eventRepository = new EventRepository();
|
|
}
|
|
|
|
public function isAuthenticationRequired(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function getEvent()
|
|
{
|
|
$currentEvent = $this->getCurrentEvent();
|
|
if ($currentEvent === null) {
|
|
return new HtmlContent('event_redirect/no_event');
|
|
}
|
|
|
|
return new Redirect(
|
|
\Container::$routeCollection->getRoute('community.event')
|
|
->generateLink([
|
|
'communitySlug' => $currentEvent->getCommunity()->getSlug(),
|
|
'eventSlug' => $currentEvent->getSlug()
|
|
]),
|
|
IRedirect::TEMPORARY
|
|
);
|
|
}
|
|
|
|
public function getEventNewTransaction()
|
|
{
|
|
$currentEvent = $this->getCurrentEvent();
|
|
if ($currentEvent === null) {
|
|
return new HtmlContent('event_redirect/no_event');
|
|
}
|
|
|
|
return new Redirect(
|
|
\Container::$routeCollection->getRoute('community.transactions.new')
|
|
->generateLink([
|
|
'communitySlug' => $currentEvent->getCommunity()->getSlug(),
|
|
'event' => $currentEvent->getSlug()
|
|
]),
|
|
IRedirect::TEMPORARY
|
|
);
|
|
}
|
|
|
|
private function getCurrentEvent(): ?Event
|
|
{
|
|
/**
|
|
* @var User $user
|
|
*/
|
|
$user = Container::$request->user();
|
|
|
|
return $this->eventRepository->getCurrentByUser($user, new DateTime(), 30, true, ['community']);
|
|
}
|
|
}
|