/** * @param EveApiReadWriteInterface $data * * @return void * @throws \LogicException */ protected function preserveToMailMessages(EveApiReadWriteInterface $data) { $tableName = 'charMailMessages'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['messageID' => null, 'ownerID' => $ownerID, 'senderID' => null, 'senderName' => null, 'senderTypeID' => null, 'sentDate' => null, 'title' => null, 'toCharacterIDs' => null, 'toCorpOrAllianceID' => '0', 'toListID' => null]; $xPath = '//messages/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToSkillInTraining(EveApiReadWriteInterface $data) { $tableName = 'charSkillInTraining'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['currentTQTime' => '1970-01-01 00:00:01', 'offset' => '0', 'ownerID' => $ownerID, 'skillInTraining' => null, 'trainingDestinationSP' => null, 'trainingEndTime' => '1970-01-01 00:00:01', 'trainingStartSP' => null, 'trainingStartTime' => '1970-01-01 00:00:01', 'trainingToLevel' => null, 'trainingTypeID' => null]; $xPath = '//result/child::*[not(*|@*|self::dataTime)]'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->valuesPreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToStarbaseList(EveApiReadWriteInterface $data) { $tableName = 'corpStarbaseList'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['itemID' => null, 'locationID' => null, 'moonID' => null, 'onlineTimestamp' => '1970-01-01 00:00:01', 'ownerID' => $ownerID, 'standingOwnerID' => null, 'state' => null, 'stateTimestamp' => '1970-01-01 00:00:01', 'typeID' => null]; $xPath = '//starbases/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToMemberSecurityLog(EveApiReadWriteInterface $data) { $tableName = 'corpMemberSecurityLog'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['changeTime' => '1970-01-01 00:00:01', 'characterID' => null, 'issuerID' => null, 'ownerID' => $ownerID, 'roleLocationType' => null]; $xPath = '//roleHistory/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToShareholders(EveApiReadWriteInterface $data) { $tableName = 'corpShareholders'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['ownerID' => $ownerID, 'shareholderCorporationID' => null, 'shareholderCorporationName' => '', 'shareholderID' => null, 'shareholderName' => '', 'shares' => null]; $xPath = '//characters/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToOutpostList(EveApiReadWriteInterface $data) { $tableName = 'corpOutpostList'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['dockingCostPerShipVolume' => null, 'officeRentalCost' => null, 'ownerID' => $ownerID, 'reprocessingEfficiency' => null, 'reprocessingStationTake' => null, 'solarSystemID' => null, 'standingOwnerID' => null, 'stationID' => null, 'stationName' => '', 'stationTypeID' => null, 'x' => null, 'y' => null, 'z' => null]; $xPath = '//corporationStarbases/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToCustomsOffices(EveApiReadWriteInterface $data) { $tableName = 'corpCustomsOffices'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['allowAlliance' => null, 'allowStandings' => null, 'itemID' => null, 'ownerID' => $ownerID, 'reinforceHour' => null, 'solarSystemID' => null, 'solarSystemName' => '', 'standingLevel' => null, 'taxRateAlliance' => '0.0', 'taxRateCorp' => '0.0', 'taxRateStandingBad' => '0.0', 'taxRateStandingGood' => '0.0', 'taxRateStandingHigh' => '0.0', 'taxRateStandingHorrible' => '0.0', 'taxRateStandingNeutral' => '0.0']; $xPath = '//pocos/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToBlueprints(EveApiReadWriteInterface $data) { $tableName = 'corpBlueprints'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['flagID' => null, 'itemID' => null, 'locationID' => null, 'materialEfficiency' => null, 'ownerID' => $ownerID, 'quantity' => null, 'runs' => null, 'timeEfficiency' => null, 'typeID' => null, 'typeName' => '']; $xPath = '//blueprints/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToOutpostServiceDetail(EveApiReadWriteInterface $data) { $tableName = 'corpOutpostServiceDetail'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['discountPerGoodStanding' => null, 'minStanding' => null, 'ownerID' => $ownerID, 'serviceName' => '', 'stationID' => null, 'surchargePerBadStanding' => null]; $xPath = '//outpostServiceDetails/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToUpcomingCalendarEvents(EveApiReadWriteInterface $data) { $tableName = 'charUpcomingCalendarEvents'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['duration' => null, 'eventDate' => '1970-01-01 00:00:01', 'eventID' => null, 'eventText' => null, 'eventTitle' => null, 'importance' => null, 'ownerID' => $ownerID, 'ownerName' => '', 'ownerTypeID' => null, 'response' => null]; $xPath = '//upcomingEvents/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToFacilities(EveApiReadWriteInterface $data) { $tableName = 'corpFacilities'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['facilityID' => null, 'ownerID' => $ownerID, 'regionID' => null, 'regionName' => '', 'solarSystemID' => null, 'solarSystemName' => '', 'starbaseModifier' => null, 'tax' => '0.0', 'typeID' => null, 'typeName' => '']; $xPath = '//facilities/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToResearch(EveApiReadWriteInterface $data) { $tableName = 'charResearch'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['agentID' => null, 'ownerID' => $ownerID, 'pointsPerDay' => null, 'remainderPoints' => null, 'researchStartDate' => '1970-01-01 00:00:01', 'skillTypeID' => null]; $xPath = '//research/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToContainerLog(EveApiReadWriteInterface $data) { $tableName = 'corpContainerLog'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['action' => null, 'actorID' => null, 'actorName' => '', 'flag' => null, 'itemID' => null, 'itemTypeID' => null, 'locationID' => null, 'logTime' => '1970-01-01 00:00:01', 'newConfiguration' => null, 'oldConfiguration' => null, 'ownerID' => $ownerID, 'passwordType' => null, 'quantity' => null, 'typeID' => null]; $xPath = '//containerLog/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToMedals(EveApiReadWriteInterface $data) { $tableName = 'corpMedals'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['created' => null, 'creatorID' => null, 'description' => '', 'medalID' => null, 'ownerID' => $ownerID, 'title' => null]; $xPath = '//medals/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToContracts(EveApiReadWriteInterface $data) { $tableName = 'corpContracts'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['acceptorID' => null, 'assigneeID' => null, 'availability' => null, 'buyout' => null, 'collateral' => null, 'contractID' => null, 'dateAccepted' => '1970-01-01 00:00:01', 'dateCompleted' => '1970-01-01 00:00:01', 'dateExpired' => '1970-01-01 00:00:01', 'dateIssued' => '1970-01-01 00:00:01', 'endStationID' => null, 'forCorp' => null, 'issuerCorpID' => null, 'issuerID' => null, 'numDays' => null, 'ownerID' => $ownerID, 'price' => null, 'reward' => null, 'startStationID' => null, 'status' => null, 'title' => null, 'type' => null, 'volume' => null]; $xPath = '//contractList/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToMarketOrders(EveApiReadWriteInterface $data) { $tableName = 'corpMarketOrders'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['accountKey' => null, 'bid' => null, 'charID' => null, 'duration' => null, 'escrow' => null, 'issued' => null, 'minVolume' => null, 'orderID' => null, 'orderState' => null, 'ownerID' => $ownerID, 'price' => null, 'range' => null, 'stationID' => null, 'typeID' => null, 'volEntered' => null, 'volRemaining' => null]; $xPath = '//orders/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToWalletTransactions(EveApiReadWriteInterface $data) { $tableName = 'charWalletTransactions'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['clientID' => null, 'clientName' => '', 'clientTypeID' => null, 'journalTransactionID' => null, 'ownerID' => $ownerID, 'price' => null, 'quantity' => null, 'stationID' => null, 'stationName' => '', 'transactionDateTime' => '1970-01-01 00:00:01', 'transactionFor' => null, 'transactionID' => null, 'transactionType' => null, 'typeID' => null, 'typeName' => '']; $xPath = '//transactions/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToWalletJournal(EveApiReadWriteInterface $data) { $tableName = 'corpWalletJournal'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['amount' => null, 'argID1' => null, 'argName1' => '', 'balance' => '0.0', 'date' => '1970-01-01 00:00:01', 'owner1TypeID' => null, 'owner2TypeID' => null, 'ownerID' => $ownerID, 'ownerID1' => null, 'ownerID2' => null, 'ownerName1' => '', 'ownerName2' => '', 'reason' => null, 'refID' => null, 'refTypeID' => null]; $xPath = '//entries/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToSkillQueue(EveApiReadWriteInterface $data) { $tableName = 'charSkillQueue'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['endSP' => null, 'endTime' => '1970-01-01 00:00:01', 'level' => null, 'ownerID' => $ownerID, 'queuePosition' => null, 'startSP' => null, 'startTime' => '1970-01-01 00:00:01', 'typeID' => null]; $xPath = '//skillqueue/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToNotifications(EveApiReadWriteInterface $data) { $tableName = 'charNotifications'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['notificationID' => null, 'ownerID' => $ownerID, 'read' => null, 'senderID' => null, 'senderName' => '', 'sentDate' => '1970-01-01 00:00:01', 'typeID' => null]; $xPath = '//notifications/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToAccountBalance(EveApiReadWriteInterface $data) { $tableName = 'corpAccountBalance'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['accountID' => null, 'accountKey' => null, 'balance' => '0.0', 'ownerID' => $ownerID]; $xPath = '//accounts/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToIndustryJobsHistory(EveApiReadWriteInterface $data) { // Shared table. $tableName = 'corpIndustryJobs'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['activityID' => null, 'blueprintID' => null, 'blueprintLocationID' => null, 'blueprintTypeID' => null, 'blueprintTypeName' => '', 'completedCharacterID' => null, 'completedDate' => null, 'cost' => null, 'endDate' => null, 'facilityID' => null, 'installerID' => null, 'installerName' => '', 'jobID' => null, 'licensedRuns' => null, 'outputLocationID' => null, 'ownerID' => $ownerID, 'pauseDate' => null, 'probability' => null, 'productTypeID' => null, 'productTypeName' => '', 'runs' => null, 'solarSystemID' => null, 'solarSystemName' => '', 'startDate' => null, 'stationID' => null, 'status' => null, 'successfulRuns' => null, 'teamID' => null, 'timeInSeconds' => null]; $xPath = '//jobs/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToAssetList(EveApiReadWriteInterface $data) { $tableName = 'charAssetList'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['flag' => '0', 'itemID' => null, 'lft' => null, 'lvl' => null, 'locationID' => null, 'ownerID' => $ownerID, 'quantity' => '1', 'rawQuantity' => '0', 'rgt' => null, 'singleton' => '0', 'typeID' => null]; $xPath = '//row'; $simple = new \SimpleXMLElement($data->getEveApiXml()); /** @noinspection PhpUndefinedFieldInspection */ if (0 !== $simple->result[0]->count()) { /** @noinspection PhpUndefinedFieldInspection */ $simple->result[0]->row[0]['itemID'] = $ownerID; /** @noinspection PhpUndefinedFieldInspection */ $this->addNesting($simple->result[0]->row[0]); } $data->setEveApiXml($simple->asXML()); $this->attributePreserveData($simple->xpath($xPath), $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return void * @throws \LogicException */ protected function preserveToStarbaseDetail(EveApiReadWriteInterface $data) { $tableName = 'corpStarbaseDetail'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $starbaseID = $data->getEveApiArgument('itemID'); $sql = $this->getCsq()->getDeleteFromStarbaseDetailTables($tableName, $ownerID, $starbaseID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['ownerID' => $ownerID, 'itemID' => $starbaseID, 'onlineTimestamp' => '1970-01-01 00:00:01', 'state' => '0', 'stateTimestamp' => '1970-01-01 00:00:01']; $xPath = '//result/child::*[not(*|@*|self::dataTime)]'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->valuesPreserveData($elements, $columnDefaults, $tableName); }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToSkills(EveApiReadWriteInterface $data) { $tableName = 'charSkills'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['level' => null, 'ownerID' => $ownerID, 'published' => null, 'skillpoints' => null, 'typeID' => null]; $xPath = '//skills/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \DomainException * @throws \InvalidArgumentException * @throws \LogicException */ protected function preserveToKeyBridge(EveApiReadWriteInterface $data) { $tableName = 'accountKeyBridge'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $columnDefaults = ['keyID' => $ownerID, 'characterID' => null]; $xPath = '//characters/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToOffers(EveApiReadWriteInterface $data) { $tableName = 'accountOffers'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['keyID' => $ownerID, 'offerID' => null, 'offeredDate' => null, 'from' => null, 'to' => null, 'ISK' => null]; $xPath = '//Offers/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }
/** * Adds Processing Instruction to XML containing json encoding of any post used during retrieve. * * NOTE: This use to be done directly in the network retriever but felt modifying the XML like that belonged in * transform instead. * * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \DomainException * @throws \InvalidArgumentException * @throws \LogicException * @throws \UnexpectedValueException */ private function addYapealProcessingInstructionToXml(EveApiReadWriteInterface $data) : self { $xml = $data->getEveApiXml(); if ('' === $xml) { return $this; } $arguments = $data->getEveApiArguments(); // Include only partial vCode for security. if (!empty($arguments['vCode'])) { $arguments['vCode'] = substr($arguments['vCode'], 0, min(8, strlen($arguments['vCode']) - 1)) . '...'; } // Remove arguments that never need to be included. unset($arguments['mask'], $arguments['rowCount']); ksort($arguments); $json = json_encode($arguments); if (false === $json) { $mess = sprintf('JSON encoding of parameters failed with %s during', json_last_error_msg()); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::WARNING, $this->createEveApiMessage($mess, $data)); return $this; } $xml = str_replace("='UTF-8'?>\n", "='UTF-8'?>\n<?yapeal.parameters.json " . $json . "?>\n", $xml); $data->setEveApiXml($xml); return $this; }
/** * Special override to work around bug in Eve API server when including both KeyID and corporationID. * * @param EveApiReadWriteInterface $data * * @return bool * @throws \DomainException * @throws \InvalidArgumentException * @throws \LogicException */ protected function processEvents(EveApiReadWriteInterface $data) : bool { $corpID = 0; $eventSuffixes = ['retrieve', 'transform', 'validate', 'preserve']; foreach ($eventSuffixes as $eventSuffix) { if ('retrieve' === $eventSuffix) { $corp = $data->getEveApiArguments(); $corpID = $corp['corporationID']; // Can NOT include corporationID or will only get public info. if (array_key_exists('keyID', $corp)) { unset($corp['corporationID']); $data->setEveApiArguments($corp); } } if (false === $this->emitEvents($data, $eventSuffix)) { return false; } if ('retrieve' === $eventSuffix) { $data->addEveApiArgument('corporationID', $corpID); } if (false === $data->getEveApiXml()) { if ($data->hasEveApiArgument('accountKey') && '10000' === $data->getEveApiArgument('accountKey') && 'corp' === strtolower($data->getEveApiSectionName())) { $mess = 'No faction warfare account data in'; $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::INFO, $this->createEveApiMessage($mess, $data)); return false; } $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::INFO, $this->getEmptyXmlDataMessage($data, $eventSuffix)); return false; } } return true; }
/** * @param EveApiReadWriteInterface $data * * @return self Fluent interface. * @throws \LogicException */ protected function preserveToCorporateContactList(EveApiReadWriteInterface $data) { $tableName = 'charCorporateContactList'; $ownerID = $this->extractOwnerID($data->getEveApiArguments()); $sql = $this->getCsq()->getDeleteFromTableWithOwnerID($tableName, $ownerID); $this->getYem()->triggerLogEvent('Yapeal.Log.log', Logger::DEBUG, $sql); $this->getPdo()->exec($sql); $columnDefaults = ['contactID' => null, 'contactName' => '', 'contactTypeID' => null, 'labelMask' => null, 'ownerID' => $ownerID, 'standing' => null]; $xPath = '//corporateContactList/row'; $elements = (new \SimpleXMLElement($data->getEveApiXml()))->xpath($xPath); $this->attributePreserveData($elements, $columnDefaults, $tableName); return $this; }