MAPG-103 save map metadata

This commit is contained in:
bence committed 2020-06-09 21:29:51 +02:00
1 parent 46ef7f3b3b
commit fbab712496
4 files changed
+147 -46

No files matched your search

+14 -16
View File
@@ -8,6 +8,7 @@ use MapGuesser\Interfaces\Authorization\ISecured;
use MapGuesser\Interfaces\Database\IResultSet;
use MapGuesser\Interfaces\Request\IRequest;
use MapGuesser\Interfaces\Response\IContent;
use MapGuesser\Repository\MapRepository;
use MapGuesser\Repository\PlaceRepository;
use MapGuesser\Response\HtmlContent;
use MapGuesser\Response\JsonContent;
@@ -18,11 +19,14 @@ class MapAdminController implements ISecured
{
private IRequest $request;
private MapRepository $mapRepository;
private PlaceRepository $placeRepository;
public function __construct(IRequest $request)
{
$this->request = $request;
$this->mapRepository = new MapRepository();
$this->placeRepository = new PlaceRepository();
}
@@ -44,11 +48,11 @@ class MapAdminController implements ISecured
{
$mapId = (int) $this->request->query('mapId');
$bounds = $this->getMapBounds($mapId);
$map = $this->mapRepository->getById($mapId);
$bounds = Bounds::createDirectly($map['bound_south_lat'], $map['bound_west_lng'], $map['bound_north_lat'], $map['bound_east_lng']);
$places = $this->getPlaces($mapId);
$data = ['mapId' => $mapId, 'bounds' => $bounds->toArray(), 'places' => &$places];
$data = ['mapId' => $mapId, 'mapName' => $map['name'], 'mapDescription' => str_replace('<br>', '\n', $map['description']), 'bounds' => $bounds->toArray(), 'places' => &$places];
return new HtmlContent('admin/map_editor', $data);
}
@@ -109,25 +113,19 @@ class MapAdminController implements ISecured
'bound_east_lng' => $mapBounds->getEastLng()
];
if (isset($_POST['name'])) {
$map['name'] = $_POST['name'] ? $_POST['name'] : '[unnamed map]';
}
if (isset($_POST['description'])) {
$map['description'] = str_replace(['\n', '\r\n'], '<br>', $_POST['description']);
}
$this->saveMapData($mapId, $map);
$data = ['added' => $addedIds];
return new JsonContent($data);
}
private function getMapBounds(int $mapId): Bounds
{
$select = new Select(\Container::$dbConnection, 'maps');
$select->columns(['bound_south_lat', 'bound_west_lng', 'bound_north_lat', 'bound_east_lng']);
$select->whereId($mapId);
$map = $select->execute()->fetch(IResultSet::FETCH_ASSOC);
$bounds = Bounds::createDirectly($map['bound_south_lat'], $map['bound_west_lng'], $map['bound_north_lat'], $map['bound_east_lng']);
return $bounds;
}
private function calculateMapBounds(int $mapId): Bounds
{
$select = new Select(\Container::$dbConnection, 'places');