adapt Container usage to new soko-web

This commit is contained in:
bence committed 2023-04-20 00:39:10 +02:00
1 parent ee4a9f2ce3
commit e52300b9e5
23 files changed
+248 -397

No files matched your search

+17 -25
View File
@@ -4,13 +4,11 @@ use DateTime;
use SokoWeb\Interfaces\Authentication\IUser;
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
use SokoWeb\Interfaces\Authorization\ISecured;
use SokoWeb\Interfaces\Request\IRequest;
use SokoWeb\Interfaces\Response\IContent;
use MapGuesser\PersistentData\Model\Challenge;
use MapGuesser\PersistentData\Model\Map;
use MapGuesser\PersistentData\Model\Place;
use MapGuesser\PersistentData\Model\PlaceInChallenge;
use SokoWeb\PersistentData\PersistentDataManager;
use MapGuesser\Repository\ChallengeRepository;
use MapGuesser\Repository\GuessRepository;
use MapGuesser\Repository\MapRepository;
@@ -27,10 +25,6 @@ class MapAdminController implements IAuthenticationRequired, ISecured
{
private static string $unnamedMapName = '[unnamed map]';
private IRequest $request;
private PersistentDataManager $pdm;
private MapRepository $mapRepository;
private PlaceRepository $placeRepository;
@@ -45,10 +39,8 @@ class MapAdminController implements IAuthenticationRequired, ISecured
private UserInChallengeRepository $userInChallengeRepository;
public function __construct(IRequest $request)
public function __construct()
{
$this->request = $request;
$this->pdm = new PersistentDataManager();
$this->mapRepository = new MapRepository();
$this->placeRepository = new PlaceRepository();
$this->userPlayedPlaceRepository = new UserPlayedPlaceRepository();
@@ -65,12 +57,12 @@ class MapAdminController implements IAuthenticationRequired, ISecured
public function authorize(): bool
{
return $this->request->user()->hasPermission(IUser::PERMISSION_ADMIN);
return \Container::$request->user()->hasPermission(IUser::PERMISSION_ADMIN);
}
public function getMapEditor(): IContent
{
$mapId = (int) $this->request->query('mapId');
$mapId = (int) \Container::$request->query('mapId');
if ($mapId) {
$map = $this->mapRepository->getById($mapId);
@@ -93,7 +85,7 @@ class MapAdminController implements IAuthenticationRequired, ISecured
public function getPlace(): IContent
{
$placeId = (int) $this->request->query('placeId');
$placeId = (int) \Container::$request->query('placeId');
$place = $this->placeRepository->getById($placeId);
@@ -102,14 +94,14 @@ class MapAdminController implements IAuthenticationRequired, ISecured
public function saveMap(): IContent
{
$mapId = (int) $this->request->query('mapId');
$mapId = (int) \Container::$request->query('mapId');
if ($mapId) {
$map = $this->mapRepository->getById($mapId);
} else {
$map = new Map();
$map->setName(self::$unnamedMapName);
$this->pdm->saveToDb($map);
\Container::$persistentDataManager->saveToDb($map);
}
if (isset($_POST['added'])) {
@@ -131,7 +123,7 @@ class MapAdminController implements IAuthenticationRequired, ISecured
$place->setPanoIdCachedTimestampDate(new DateTime('-1 day'));
}
$this->pdm->saveToDb($place);
\Container::$persistentDataManager->saveToDb($place);
$addedIds[] = ['tempId' => $placeRaw['id'], 'id' => $place->getId()];
}
@@ -153,7 +145,7 @@ class MapAdminController implements IAuthenticationRequired, ISecured
));
$place->setPanoIdCachedTimestampDate(new DateTime('-1 day'));
$this->pdm->saveToDb($place);
\Container::$persistentDataManager->saveToDb($place);
}
}
@@ -182,20 +174,20 @@ class MapAdminController implements IAuthenticationRequired, ISecured
$map->setUnlisted((bool)$_POST['unlisted']);
}
$this->pdm->saveToDb($map);
\Container::$persistentDataManager->saveToDb($map);
return new JsonContent(['mapId' => $map->getId(), 'added' => $addedIds]);
}
public function deleteMap(): IContent
{
$mapId = (int) $this->request->query('mapId');
$mapId = (int) \Container::$request->query('mapId');
$map = $this->mapRepository->getById($mapId);
$this->deletePlaces($map);
$this->pdm->deleteFromDb($map);
\Container::$persistentDataManager->deleteFromDb($map);
return new JsonContent(['success' => true]);
}
@@ -203,14 +195,14 @@ class MapAdminController implements IAuthenticationRequired, ISecured
private function deletePlace(Place $place): void
{
foreach ($this->userPlayedPlaceRepository->getAllByPlace($place) as $userPlayedPlace) {
$this->pdm->deleteFromDb($userPlayedPlace);
\Container::$persistentDataManager->deleteFromDb($userPlayedPlace);
}
foreach ($this->challengeRepository->getAllByPlace($place) as $challenge) {
$this->deleteChallenge($challenge);
}
$this->pdm->deleteFromDb($place);
\Container::$persistentDataManager->deleteFromDb($place);
}
private function deletePlaces(Map $map): void
@@ -223,18 +215,18 @@ class MapAdminController implements IAuthenticationRequired, ISecured
private function deleteChallenge(Challenge $challenge): void
{
foreach ($this->userInChallengeRepository->getAllByChallenge($challenge) as $userInChallenge) {
$this->pdm->deleteFromDb($userInChallenge);
\Container::$persistentDataManager->deleteFromDb($userInChallenge);
}
foreach ($this->guessRepository->getAllInChallenge($challenge, [PlaceInChallenge::class]) as $guess) {
$this->pdm->deleteFromDb($guess);
\Container::$persistentDataManager->deleteFromDb($guess);
}
foreach ($this->placeInChallengeRepository->getAllByChallenge($challenge) as $placeInChallenge) {
$this->pdm->deleteFromDb($placeInChallenge);
\Container::$persistentDataManager->deleteFromDb($placeInChallenge);
}
$this->pdm->deleteFromDb($challenge);
\Container::$persistentDataManager->deleteFromDb($challenge);
}
private function calculateMapBounds(Map $map): Bounds