map info module improvements, new system graph module, map info module refactoring, new CCP API Cronjob (jumps, kills,...)
This commit is contained in:
@@ -109,6 +109,45 @@ class Map extends \Controller\AccessController {
|
||||
echo json_encode($initData);
|
||||
}
|
||||
|
||||
/**
|
||||
* save a new map or update an existing map
|
||||
* @param $f3
|
||||
*/
|
||||
public function save($f3){
|
||||
|
||||
$mapData = (array)$f3->get('POST.mapData');
|
||||
|
||||
$map = Model\BasicModel::getNew('MapModel');
|
||||
$map->getById($mapData['id']);
|
||||
$map->setData($mapData);
|
||||
$map->save();
|
||||
|
||||
if($map->isPrivate()){
|
||||
$user = $this->_getUser();
|
||||
$map->setAccess($user);
|
||||
}
|
||||
|
||||
$mapData = $map->getData();
|
||||
|
||||
echo json_encode($mapData);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete a map and all dependencies
|
||||
* @param $f3
|
||||
*/
|
||||
public function delete($f3){
|
||||
$mapData = (array)$f3->get('POST.mapData');
|
||||
|
||||
$user = $this->_getUser();
|
||||
|
||||
$map = Model\BasicModel::getNew('MapModel');
|
||||
$map->getById($mapData['id']);
|
||||
$map->delete($user);
|
||||
|
||||
echo json_encode([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* update map data api
|
||||
* function is called continuously
|
||||
@@ -116,6 +155,10 @@ class Map extends \Controller\AccessController {
|
||||
*/
|
||||
public function updateData($f3){
|
||||
|
||||
// cache time for response should be equal or less than this function is called
|
||||
// security aspect
|
||||
$responseTTL = 3;
|
||||
|
||||
$mapData = (array)$f3->get('POST.mapData');
|
||||
|
||||
$user = $this->_getUser();
|
||||
@@ -125,28 +168,42 @@ class Map extends \Controller\AccessController {
|
||||
$connection = Model\BasicModel::getNew('ConnectionModel');
|
||||
|
||||
|
||||
|
||||
foreach($mapData as $data){
|
||||
|
||||
$config = $data['config'];
|
||||
$systems = $data['data']['systems'];
|
||||
$connections = $data['data']['connections'];
|
||||
$systems = [];
|
||||
$connections = [];
|
||||
|
||||
// check whether system data and/or connection data is send
|
||||
// empty arrays are not included in ajax requests
|
||||
if(array_key_exists('data', $data)){
|
||||
if(array_key_exists('systems', $data['data'])){
|
||||
$systems = $data['data']['systems'];
|
||||
}
|
||||
if(array_key_exists('connections', $data['data'])){
|
||||
$connections = $data['data']['connections'];
|
||||
}
|
||||
}
|
||||
|
||||
// update map data ---------------------------------------------
|
||||
$map->getById($config['id']);
|
||||
|
||||
// update map on change
|
||||
if( (int)$config['updated'] > strtotime($map->updated)){
|
||||
$map->setData($config);
|
||||
$map->save();
|
||||
if(!$map->dry()){
|
||||
// update map on change
|
||||
if( (int)$config['updated'] > strtotime($map->updated)){
|
||||
$map->setData($config);
|
||||
$map->save();
|
||||
}
|
||||
}
|
||||
|
||||
// get system data -----------------------------------------------
|
||||
foreach($systems as $systemData){
|
||||
|
||||
$system->getById($systemData['id']);
|
||||
|
||||
if((int)$systemData['updated'] > strtotime($system->updated)){
|
||||
if(
|
||||
(int)$systemData['updated'] === 0 &&
|
||||
!$system->dry()
|
||||
){
|
||||
$systemData['mapId'] = $map;
|
||||
$system->setData($systemData);
|
||||
$system->save();
|
||||
@@ -157,15 +214,17 @@ class Map extends \Controller\AccessController {
|
||||
|
||||
// get connection data -------------------------------------------
|
||||
foreach($connections as $connectionData){
|
||||
|
||||
$connection->getById($connectionData['id']);
|
||||
|
||||
if((int)$connectionData['updated'] > strtotime($connection->updated)){
|
||||
|
||||
if(
|
||||
(int)$connectionData['updated'] === 0 &&
|
||||
!$connection->dry()
|
||||
){
|
||||
$connectionData['mapId'] = $map;
|
||||
$connection->setData($connectionData);
|
||||
$connection->save();
|
||||
$connection->save($user);
|
||||
}
|
||||
|
||||
$connection->reset();
|
||||
}
|
||||
|
||||
@@ -173,25 +232,41 @@ class Map extends \Controller\AccessController {
|
||||
}
|
||||
|
||||
// get map data ======================================================
|
||||
$cacheKey = 'user_map_data_' . $user->id;
|
||||
|
||||
$activeMaps = $user->getMaps();
|
||||
if($f3->exists($cacheKey) === false){
|
||||
$activeMaps = $user->getMaps();
|
||||
|
||||
$newData = [];
|
||||
foreach($activeMaps as $activeMap){
|
||||
// format map Data for return
|
||||
$newData = self::getFormattedMapData($activeMaps);
|
||||
|
||||
$newData[] = [
|
||||
'config' => $activeMap->getData(),
|
||||
$f3->set($cacheKey, $newData, $responseTTL);
|
||||
}else{
|
||||
// TODO log -> manipulated request
|
||||
}
|
||||
|
||||
|
||||
echo json_encode( $f3->get($cacheKey) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $mapModels
|
||||
* @return Model\MapModel[]
|
||||
*/
|
||||
public static function getFormattedMapData($mapModels){
|
||||
|
||||
$mapData = [];
|
||||
foreach($mapModels as $mapModel){
|
||||
$mapData[] = [
|
||||
'config' => $mapModel->getData(),
|
||||
'data' => [
|
||||
'systems' => $activeMap->getSystemData(),
|
||||
'connections' => $activeMap->getConnectionData(),
|
||||
'systems' => $mapModel->getSystemData(),
|
||||
'connections' => $mapModel->getConnectionData(),
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
echo json_encode($newData);
|
||||
return $mapData;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user