- New "Sovereignty" and "Faction warfare" data added, closed #853
- New ESI data import for wormhole type data from _ESI_, closed #852 - New ESI data import static wormholes, closed #852 - Improved performance for character authorization (PHP). Reduced number of _SQL_ queries. - Improved HTTP cache header for `api/map/initData`, 'api/user/getEveServerStatus' ajax requests
This commit is contained in:
@@ -52,13 +52,10 @@ class Map extends Controller\AccessController {
|
||||
* @throws Exception
|
||||
*/
|
||||
public function initData(\Base $f3){
|
||||
// expire time in seconds
|
||||
$expireTimeCache = 60 * 60;
|
||||
|
||||
if(!$f3->exists(self::CACHE_KEY_INIT, $return)){
|
||||
// response should not be cached if invalid -> e.g. missing static data
|
||||
$validInitData = true;
|
||||
$validInitData = true;
|
||||
$ttl = 60 * 60;
|
||||
|
||||
if(!$exists = $f3->exists(self::CACHE_KEY_INIT, $return)){
|
||||
$return = (object) [];
|
||||
$return->error = [];
|
||||
|
||||
@@ -199,29 +196,33 @@ class Map extends Controller\AccessController {
|
||||
|
||||
// structure status ---------------------------------------------------------------------------------------
|
||||
$structureStatus = Pathfinder\StructureStatusModel::getAll();
|
||||
$structureData = [];
|
||||
$structureStatusData = [];
|
||||
foreach($structureStatus as $status){
|
||||
$structureData[$status->_id] = $status->getData();
|
||||
$structureStatusData[$status->_id] = $status->getData();
|
||||
}
|
||||
$return->structureStatus = $structureData;
|
||||
$return->structureStatus = $structureStatusData;
|
||||
|
||||
$validInitData = $validInitData ? !empty($structureData) : $validInitData;
|
||||
$validInitData = $validInitData ? !empty($structureStatusData) : $validInitData;
|
||||
|
||||
// get available wormhole types ---------------------------------------------------------------------------
|
||||
/**
|
||||
* @var $wormhole Universe\WormholeModel
|
||||
* @var $groupUniverseModel Universe\GroupModel
|
||||
*/
|
||||
$wormhole = Universe\AbstractUniverseModel::getNew('WormholeModel');
|
||||
$groupUniverseModel = Universe\AbstractUniverseModel::getNew('GroupModel');
|
||||
$groupUniverseModel->getById(Config::ESI_GROUP_WORMHOLE_ID);
|
||||
$wormholesData = [];
|
||||
if($rows = $wormhole->find(null, ['order' => 'name asc'])){
|
||||
foreach($rows as $rowData){
|
||||
$wormholesData[$rowData->name] = $rowData->getData();
|
||||
/**
|
||||
* @var $typeModel Universe\TypeModel
|
||||
*/
|
||||
foreach($types = $groupUniverseModel->getTypes(false) as $typeModel){
|
||||
if(
|
||||
($wormholeData = $typeModel->getWormholeData()) &&
|
||||
mb_strlen((string)$wormholeData->name) === 4
|
||||
){
|
||||
$wormholesData[$wormholeData->name] = $wormholeData;
|
||||
}
|
||||
|
||||
$wormhole->reset();
|
||||
$wormhole->name = 'K162';
|
||||
$wormholesData[$wormhole->name] = $wormhole->getData();
|
||||
}
|
||||
ksort($wormholesData);
|
||||
$return->wormholes = $wormholesData;
|
||||
|
||||
$validInitData = $validInitData ? !empty($wormholesData) : $validInitData;
|
||||
@@ -231,20 +232,20 @@ class Map extends Controller\AccessController {
|
||||
* @var $categoryUniverseModel Universe\CategoryModel
|
||||
*/
|
||||
$categoryUniverseModel = Universe\AbstractUniverseModel::getNew('CategoryModel');
|
||||
$categoryUniverseModel->getById(6);
|
||||
$shipData = $categoryUniverseModel->getData(['mass']);
|
||||
$categoryUniverseModel->getById(65);
|
||||
$structureData = $categoryUniverseModel->getData();
|
||||
|
||||
$return->universeCategories = [
|
||||
6 => $shipData,
|
||||
65 => $structureData
|
||||
Config::ESI_CATEGORY_SHIP_ID =>
|
||||
($categoryUniverseModel->getById(Config::ESI_CATEGORY_SHIP_ID) && $categoryUniverseModel->valid()) ? $categoryUniverseModel->getData(['mass']) : null,
|
||||
Config::ESI_CATEGORY_STRUCTURE_ID =>
|
||||
($categoryUniverseModel->getById(Config::ESI_CATEGORY_STRUCTURE_ID) && $categoryUniverseModel->valid()) ? $categoryUniverseModel->getData() : null,
|
||||
];
|
||||
|
||||
$validInitData = $validInitData ? !empty($return->universeCategories[65]) : $validInitData;
|
||||
$validInitData = $validInitData ? !count(array_filter($return->universeCategories, function($v){
|
||||
return empty(array_filter((array)$v->groups));
|
||||
})) : $validInitData;
|
||||
|
||||
// response should not be cached if invalid -> e.g. missing static data
|
||||
if($validInitData){
|
||||
$f3->set(self::CACHE_KEY_INIT, $return, $expireTimeCache );
|
||||
$f3->set(self::CACHE_KEY_INIT, $return, $ttl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,6 +258,9 @@ class Map extends Controller\AccessController {
|
||||
$ssoError->message = $message;
|
||||
$return->error[] = $ssoError;
|
||||
$f3->clear(Controller\Ccp\Sso::SESSION_KEY_SSO_ERROR);
|
||||
}elseif($validInitData){
|
||||
// no errors and valid data -> send Cache header
|
||||
$f3->expire(Config::ttlLeft($exists, $ttl));
|
||||
}
|
||||
|
||||
echo json_encode($return);
|
||||
@@ -906,14 +910,13 @@ class Map extends Controller\AccessController {
|
||||
// systemData -----------------------------------------------------------------------------------------
|
||||
if(
|
||||
$mapId === (int)$systemData['mapId'] &&
|
||||
!is_null($system = $map->getSystemById((int)$systemData['systemData']['id']))
|
||||
!is_null($system = $map->getSystemById((int)$systemData['id']))
|
||||
){
|
||||
// data for currently selected system
|
||||
$return->system = $system->getData();
|
||||
$return->system->signatures = $system->getSignaturesData();
|
||||
$return->system->sigHistory = $system->getSignaturesHistory();
|
||||
$return->system->structures = $system->getStructuresData();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user